首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring @GetMapping与@RequestParam和@RequestBody在HttpMessageNotReadableException中失败

Spring @GetMapping与@RequestParam和@RequestBody在HttpMessageNotReadableException中失败
EN

Stack Overflow用户
提问于 2017-02-15 17:33:06
回答 2查看 34.6K关注 0票数 10

对端点的请求失败,出现以下错误:

坏请求org.springframework.http.converter.HttpMessageNotReadableException:所需请求体丢失

代码语言:javascript
运行
复制
@GetMapping
public List<SomeObject> list(@RequestParam(required = false) String parameter, @RequestBody String body, @RequestHeader("Authorization") String token) {
.....
}

不过,如果@GetMapping改为@PostMapping,一切都会很有魅力。你知道到底怎么回事吗?

注意: Swagger用于发送请求,因此错误不太可能出现在Curl中

更新:所以,看起来Spring不支持@GetMapping@RequestBody。我仍然不知道为什么?@DeleteMapping@RequestBody一起工作很好,并且根据HTTP1.1GET请求可能包含body -@RequestBody

DELETE中允许身体,但在GET中禁止使用,看起来有点不一致。

EN

Stack Overflow用户

回答已采纳

发布于 2017-02-15 17:50:34

@RequestBody注释将发送到(POST / PUT)请求体的内容与带注释的变量绑定。由于GET请求中没有“body”部分,spring抛出HttpMessageNotReadableException来表示相同的内容。

通常情况下,您只能对具有“body”内容(如POST或PUT )的请求使用@RequestBody

票数 20
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42256358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档