在Spring Restful Service中使用两个RequestBody

时间:2017-05-25 10:03:51

标签: rest spring-rest

我正在尝试在Spring Rest中使用两个请求主体进行映射。

我已经阅读了一些问题,并建议使用两种不同的方法,其中一种用作application / json,另一种用于application / x-www-form-urlencoded。

我想知道这是唯一的方法还是有任何替代方法,以便我可以同时使用application / json和urlencoded作为我的RequestBody。

1 个答案:

答案 0 :(得分:0)

我不确定为什么你需要两个 - @RequestBody - 一个application/json&另一个用于application/x-www-form-urlencoded,而在概念上,HTTP请求只有一个主体,因此两个主体对我没有意义。

您正在寻找的是处理两种不同内容的相同方法 - 类型不是两个主体。正文生成/转换过程将根据内容类型而有所不同,但由于客户端将发送相同的数据,因此只有一个正文。

已突出显示here

支持两种不同的内容类型

使用consumes={MediaType.APPLICATION_JSON_VALUE,MediaType.APPLICATION_FORM_URLENCODED_VALUE},您可以通过更改请求中的内容类型标头,将这两种内容类型与@RequestBody一起发送。

唯一@RequestMapping只能有一种方法,否则会成为不明确的映射。

多个映射可以映射到单个方法,但反之亦然。