rest - 在 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 值。可能吗 ?
解决方案
定义一个类,如:
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。
推荐阅读
- javascript - 如何访问通过类组件中传递的查询参数?
- java - Android Studio 北极狐:加载小部件时出现问题
- java - 创建一个基于 Java 中的用户输入创建更多文本字段的方法
- git - 我正在尝试从 Visual Studio Code 推送到 GitHub 存储库,但我无法进行身份验证
- python - django-crontab 不适用于 docker python:3.9-buster 图像
- webview2 - WebView2 环境异常(请求的资源正在使用中)
- python - 如果键在列表中,则计算列表中的项目并将它们附加到字典中
- react-admin - 如何在反应管理员中过滤列表
- python - 安装新环境和python版本时的Conda glibc依赖冲突
- elasticsearch - CloudFormation:不可导入资源的漂移修复?