首页 > 解决方案 > 在 java 中读取 POST 请求正文的内容(使用 REST)

问题描述

假设我使用 POSTMAN 发出一个 POST 请求,并且有一个 json 格式的正文。我想读取正文的内容并将其传递给一个方法。怎么做 ?

我可以看到有@QueryParam、@PathParam、@HeaderParam 等注释用于读取参数。我不明白如何阅读正文。

说身体是
{ "param1":"value1", "param2":"value2", "param3":"value3", }

服务器端java代码:

@POST

@Path("/myresource")

public Response addParams( String param1, String param2, String param3) { do somthing. }

所以我希望从 requestbody 中读取这个 param1、param2、parmam3 值。可能吗 ?

标签: rest

解决方案


定义一个类,如:

public class Foo {

    String param1;
    String param2;
    String param3;

    // Default constructor, getters and setters
}

然后按如下方式使用它:

@POST
@Path("/myresource")
@Consumes(MediaType.APPLICATION_JSON)
public Response addParams(Foo params) {

    String param1 = params.getParam1();
    String param2 = params.getParam2();
    String param3 = params.getParam3();

    ...
}

或者,使用Map<String, String>

@POST
@Path("/myresource")
@Consumes(MediaType.APPLICATION_JSON)
public Response addParams(Map<String, String> params) {

    String param1 = params.get("param1");
    String param2 = params.get("param2");
    String param3 = params.get("param3");

    ...
}

只需确保在应用程序中配置了 JSON 解析器,例如 Jackson 或 MOXy。


推荐阅读