【问题标题】:How to get body from a request?如何从请求中获取正文?
【发布时间】:2020-04-14 08:59:11
【问题描述】:

我使用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 可以将请求体传递给控制器​​方法吗?

【问题讨论】:

    标签: playframework playframework-2.0


    【解决方案1】:

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

    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 标头设置为

    application/json;charset=utf-8

    【讨论】:

    • 这样我必须将所有 HttpRequest 对象作为方法参数传递,而不仅仅是 userId 变量。
    • 这是获取请求正文的唯一方法。这是 Play 中非常常见的模式!
    • 请记住,请求参数将由 Play 传递!自动地。您不必自己传递任何东西。
    猜你喜欢
    • 2018-10-12
    • 2016-03-13
    • 2021-03-07
    • 2018-04-21
    • 2019-11-28
    • 2012-09-14
    • 1970-01-01
    • 2021-07-22
    • 2021-10-29
    相关资源
    最近更新 更多