在play框架java中检索POST请求中发送的请求正文字符串

Bou*_*rne 12 java post playframework playframework-2.0

我在Java中使用play框架.我想检索在POST请求中发送到播放服务器的整个请求主体.我怎样才能找回它?

bie*_*ior 14

看看play.mvc.Http课程,你有一些选择(取决于数据格式)即

RequestBody body = request().body();
MultipartFormData formData = request().body().asMultipartFormData();
Map<String, String[]> params = request().body().asFormUrlEncoded();
JsonNode json = request().body().asJson();
String bodyText = request().body().asText();
Run Code Online (Sandbox Code Playgroud)

您可以request().body().asText()使用命令行中的cUrl 进行测试:

curl  -H "Content-Type: text/plain" -d  'Hello world !' http://domain.com/your-post-action
Run Code Online (Sandbox Code Playgroud)

...或者使用某些工具,例如浏览器插件:https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo

  • 我试过这个,但这会检索null (5认同)
  • 我试过String bodyText = request().body().asText(); .它返回null :) (4认同)

Vik*_*eev 12

使用Play Framework 2.3,即使是Content-Type标头是application/json,也可以获得原始的json文本

def postMethod = Action(parse.tolerantText) { request =>
    val txt = request.body
}
Run Code Online (Sandbox Code Playgroud)

  • 可能那会有所帮助:https://www.ricardclau.com/2015/06/access-to-the-raw-request-body-in-play-framework/ (2认同)