当前位置: 首页 > 知识库问答 >
问题:

解析请求参数,无需编写包装类

顾喜
2023-03-14

如何处理json请求并解析丢向导中的请求参数?

@POST
@Path("/test")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String test(@Context final HttpServletRequest request) {
    JSONObject data=new JSONObject();
    System.out.println(request);
    System.out.println(request.getParameterMap());
    System.out.println(">>>>>>>>>");

    return "{\"status\":\"ok\"}";
}

我编写了上述代码并尝试了以下请求。

curl -XPOST  -H "Content-Type: application/json" --data {"field1":"val1", "field2":"val2"} http://localhost:8080/test 

但是request.getParameterMap(){}

如何在不写包装类的情况下解析参数?

共有1个答案

闻人嘉木
2023-03-14

您的< code>curl命令可能需要在数据周围添加一些引号(如果没有引号,我会得到一个错误消息):

curl -H "Content-type: application/json" -X POST -d '{"field1":"tal1", "field2":"val2"}' http://localhost:8080/test

您发送的POST请求没有URL参数。我不知道你为什么期望在那里看到什么。

我不知道您使用的是哪个版本的dropwizard,但我无法使@POST@Path("/某物")注释的组合在注释方法时表现良好。我得到了HTTP ERROR 404

为了使其工作,我必须将@Path注释移动到资源/类级别,并在方法处只留下@Post注释。

@Path("/test")
public class SimpleResource {

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public String test(final String data) throws IOException {
        System.out.println("And now the request body:");
        System.out.println(data);
        System.out.println(">>>>>>>>>");

        return "{\"status\":\"ok\"}";
    }
}

要将请求的正文获取为字符串,只需执行上述操作即可。从这里开始:如何使用泽西岛获得完整的REST请求正文?

控制台如下所示:

INFO  [2016-11-24 15:26:29,290] org.eclipse.jetty.server.Server: Started @3539ms
And now the request body:
{"field1":"tal1", "field2":"val2"}
>>>>>>>>>
 类似资料:
  • 本文向大家介绍SpringMvc自动装箱及GET请求参数原理解析,包括了SpringMvc自动装箱及GET请求参数原理解析的使用技巧和注意事项,需要的朋友参考一下 在我的概念里边,GET请求需要加上注解@RequestParam,然后它的参数类型只能是 基本数据类型 或者 基本数据类型的包装类,比如:@RequestParam String name(默认是必传的),也可以不加@RequestPa

  • 我正在apache Karaf 3.0.3中创建一个简单的Echo服务包,我有我的Activator类, 我可以通过Eclipse创建捆绑包,使用以下Manniest文件 我还有下面的POM文件 也是我的回声课 当我在karaf 3.0.3上部署此应用程序时,我面临以下问题 > 在尝试启动包时获取以下堆栈跟踪 错误:Bundle com。公司osgi[112]启动/停止捆绑包时出错。(org.os

  • 我无法正确解析Sylius设置包。我的应用程序是Symfony标准应用程序。根据要求是条令/条令束~1.2 我现在的json:https://gist.github.com/Rvanlaak/f627a73a8d431600f8ba 解析sylius/setation-bundle给我以下错误: 将我的条令/条令包更改为~1。3@dev或1.2。0给出了错误: 在需要sylius/settings

  • 本文向大家介绍django-rest-framework解析请求参数过程详解,包括了django-rest-framework解析请求参数过程详解的使用技巧和注意事项,需要的朋友参考一下 前言 我们在django-rest-framework 自定义swagger 文章中编写了接口, 调通了接口文档. 接口文档可以直接填写参数进行请求, 接下来的问题是如何接受参数, 由于请求方式与参数序列化形式的

  • 我是symfony1的新手。4.我正在尝试在现有项目中安装composer我运行安装命令获取以下信息: 加载包含包信息的composer存储库安装依赖项(包括require dev)无法将您的需求解析为可安装的包集。 问题一: 潜在原因: 包名中的一个错别字 根据您的最小最大稳定性设置,该软件包没有足够稳定的版本,请参阅https://groups.google.com/d/topic/compo

  • 我试图安装cakephp使用作曲家本教程,但在我运行命令后: 我得到的错误: 问题1-cakephp/cakephp-codesniffer 3.0.0需要squizlabs/php_codesniffer^3.0.0- 若要启用扩展,请验证是否已在中启用它们。ini文件:-/etc/php/7.0/cli/php。ini-/etc/php/7.0/cli/conf.d/10-opcache。in