Scala 播放框架:post请求中的空主体

Scala 播放框架:post请求中的空主体,scala,playframework,playframework-2.3,Scala,Playframework,Playframework 2.3,你好!我有以下代码: def foo = Action { request => Ok(request.body.asText.getOrElse("no body")) } 在前端有这样一个表单: <form action="@controllers.routes.Application.foo()" method="POST"> <input name="name" type="text"> <input name="surnam

你好!我有以下代码:

def foo = Action { request =>
    Ok(request.body.asText.getOrElse("no body"))
}
在前端有这样一个表单:

<form action="@controllers.routes.Application.foo()" method="POST">
    <input name="name" type="text">
    <input name="surname" type="text">
     <button type="submit">
</form>

为什么,这并没有给我文本或其他形式的正文,以及我如何获得它们?

您的内容类型可能不是
text/plain
。当内容类型为预期类型时,
BodyParser
仅返回结果


编辑:代替
asText
尝试
asRaw

您的内容类型可能不是
text/plain
。当内容类型为预期类型时,
BodyParser
仅返回结果


编辑:对于给定的窗体和调试输出,您应该使用
asFormUrlEncoded
而不是
asText
尝试
asRaw
,对于给定的窗体和调试输出,您应该使用
asFormUrlEncoded

您还需要以下内容:

<form ... enctype="text/plain">


指定有效负载为纯文本。然后,
.asText
将起作用。

您还需要以下内容:

<form ... enctype="text/plain">


指定有效负载为纯文本。然后,
.asText
将工作。

执行了以下操作:Ok(request.body.asRaw.get.toString()),这给了我一个错误:NoTouchElementException:None.get,即使body不是空的?这很奇怪。是否执行了以下操作:Ok(request.body.asRaw.get.toString()),这给了我一个错误:NoTouchElementException:None.get,即使主体为非空?真奇怪。