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

Spring:只有一个元素的请求有效载荷

邓德本
2023-03-14

我想实现一个web服务,它只消耗请求有效载荷中的一个命名参数。在curl视图中,它应该是这样的:curl -X补丁myurl.net/my_service-d " {我的SingleParameter: 49} "

我正在尝试使用Spring来做到这一点,但我想知道要将此类有效负载映射到我的方法,我必须声明一个新类。比如:

...
public static class PayloadWithSingleParamMSP{
  public Long mySingleParameter;
}

@RequestMapping(value = "my_service", method = RequestMethod.PATCH)
public String myService(@RequestBody PayloadWithSingleParamMSP payload){
  Long valueWhichIReallyNeed = payload.mySingleParameter;
  //do job
  ...
}
...

但是有没有办法直接获取我真正需要的值(mySingleParameter)?

共有1个答案

梁兴修
2023-03-14

您有以下几种选择:

    @RequestMapping(value = "my_service", method = RequestMethod.PATCH)
    public String myService(@RequestBody ObjectNode payload){
        Long valueWhichIReallyNeed = payload.get("mySingleParameter").asLong();
        //do job
       ...
    }

@RequestMapping(value = "my_service", method = RequestMethod.PATCH)
public String myService(@RequestBody Map<String, String> payload){
    Long valueWhichIReallyNeed = Long.parseLong(payload.get("mySingleParameter"));
    //do job
    ...
}

甚至

@RequestMapping(value = "my_service", method = RequestMethod.PATCH)
public String myService(@RequestBody  Long mySingleParameter){
    Long valueWhichIReallyNeed = mySingleParameter;
    //do job
    //  ...
}

但在最后一种情况下,您的卷曲看起来如下:

curl -X PATCH myurl.net/my_service -d "49" 

在这个问题的答案中,您可以找到更多选项:使用Ajax将@Request estBody中的多个变量传递给Spring MVC控制器

 类似资料:
  • 问题内容: 我正在使用 PHP , ExtJS 和 ajax存储 。 它不通过POST或GET发送数据(在创建,更新,销毁时)。在 Chrome控制台中, 我在“ 请求有效负载 ”字段中看到我的传出参数为JSON 。 $ _POST 和 $ _GET 为空。 如何在PHP中检索它? 问题答案: 如果我正确理解这种情况,那么您只是通过http正文传递了json数据,而不是数据。 您可以使用以下代码段

  • 我是JOOQ新手,目前无法将连接查询映射到映射 这是我的代码: 假设我在订单中有1行,在订单项目文章中有2行。运行由(在.fetchGroups()之后)按预期返回我2行,所以我假设调用fetchGroups()也会用两个条目填充我的列表?! 我错过了什么? 谢谢 更新: 根据要求,类: 所以这只是JOOQ POJO类的扩展,用于与API客户机的JSON通信。。。

  • 问题内容: 我正在使用文件上传器,并且需要请求有效负载中的详细信息以进行裁剪。 我没有10位代表来发布POST请求的图片,但是它有 所以从avatar_data我所需要的,,,和。我知道我必须封送JSON,但是我不确定如何达到这一点? 问题答案: 实现接口。

  • 我正在研究一个播放器的集成,该播放器必须在浏览器中播放由Widevine DRM保护的流。 我查了一些知名玩家: DashJs-https://github.com/Dash-Industry-Forum/dash.js/wiki 幸运的是,这些播放器提供了一些使用Widevine DRM保护的流的示例。 我的问题涉及XHR执行以检索DRM密钥。在任何Widevine安全流中,我可以看到(在dev

  • 我有一个基于java的服务作为提供者,一个node JS应用程序作为消费者。 }

  • 我有一个用C#编写的grpc服务,它有2个调用,如Start和Stop。当客户端调用Start(这个调用需要很多时间),然后Stop服务器同步处理请求,而grpc启动了4个线程。 您能帮我了解它是否按设计运行,或者我错过了任何其他设置吗?

  • 本文向大家介绍vue为什么要求组件模板只能有一个根元素?相关面试题,主要包含被问及vue为什么要求组件模板只能有一个根元素?时的应答技巧和注意事项,需要的朋友参考一下 我是在知乎上看到的这个问题,转念一想,用了大半年的vue,好像真的没有了解过: ‘为什么只能有且只有一个根元素’ 于是我花了二十多分钟去找了一下答案......竟然没有找到答案.... 好的现在我来说说我的理解,如果有不对的地方欢迎

  • 问题内容: 我有一个向我的Java Servlet发送POST请求的javascript库,但是在该方法中,我似乎无法获取请求有效内容。在chrome Developer Tools中,所有内容都位于标头标签的“请求有效负载”部分中,并且内容在那里,而且我知道doPost方法正在接收POST,但它只是空白。 对于 对象,我可以通过什么方式在请求有效负载中获取数据? 这样做 两者最终都没有数据 问题