我正在尝试在Spring Rest中使用两个请求主体进行映射。
我已经阅读了一些问题,并建议使用两种不同的方法,其中一种用作application / json,另一种用于application / x-www-form-urlencoded。
我想知道这是唯一的方法还是有任何替代方法,以便我可以同时使用application / json和urlencoded作为我的RequestBody。
答案 0 :(得分:0)
我不确定为什么你需要两个 - @RequestBody
- 一个application/json
&另一个用于application/x-www-form-urlencoded
,而在概念上,HTTP请求只有一个主体,因此两个主体对我没有意义。
您正在寻找的是处理两种不同内容的相同方法 - 类型不是两个主体。正文生成/转换过程将根据内容类型而有所不同,但由于客户端将发送相同的数据,因此只有一个正文。
已突出显示here
支持两种不同的内容类型使用consumes={MediaType.APPLICATION_JSON_VALUE,MediaType.APPLICATION_FORM_URLENCODED_VALUE}
,您可以通过更改请求中的内容类型标头,将这两种内容类型与@RequestBody
一起发送。
唯一@RequestMapping
只能有一种方法,否则会成为不明确的映射。
多个映射可以映射到单个方法,但反之亦然。