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,即使主体为非空?真奇怪。