如何从请求中获取正文?

How to get body from a request?

我正在使用 play 2.8.x framework 作为后端,我需要从客户端获取 POST 请求。这些请求有一个 JSON 正文,如下所示:

{
  "userId": "jjjjssss"
}

我希望服务器端的 Controller method 如下所示:

public Result getUser(String userId) {
   ...
   return ok();
}

或类似这样的内容:

public Result getUser(String jsonBody) {
   ...
   return ok();
}

我该怎么做?
play 2.8.x framework 能否将请求主体传递给控制器​​方法?

好吧,如果我正确理解您的要求,您必须在控制器方法中像这样解析请求 body:

YourJsonClass theBody = request.body().parseJson(YourJsonClass.class)

这样 userId 就必须在 YourJsonClass 中,url 路径将是多余的。

更多相关信息:https://www.playframework.com/documentation/2.8.x/JavaJsonActions#Handling-a-JSON-request

只需确保您的请求是 POST 请求,并将 Content-Type header 设置为

application/json;charset=utf-8