对端点的请求失败,出现以下错误:
坏请求org.springframework.http.converter.HttpMessageNotReadableException:所需请求体丢失
@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
中禁止使用,看起来有点不一致。
发布于 2017-02-15 17:50:34
@RequestBody
注释将发送到(POST / PUT)请求体的内容与带注释的变量绑定。由于GET请求中没有“body”部分,spring抛出HttpMessageNotReadableException来表示相同的内容。
通常情况下,您只能对具有“body”内容(如POST或PUT )的请求使用@RequestBody
。
https://stackoverflow.com/questions/42256358
复制相似问题