Anfrage an den Endpunkt mit dem folgenden Fehler fehl: obwohlFrühling @GetMapping mit @RequestParam und @RequestBody nicht mit HttpMessageNotReadableException
400 Bad request org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing
@GetMapping
public List<SomeObject> list(@RequestParam(required = false) String parameter, @RequestBody String body, @RequestHeader("Authorization") String token) {
.....
}
wenn @GetMapping
würde geändert werden, um @PostMapping
alles funktioniert wie ein Charme. Irgendwelche Ideen, was zum Teufel ist los?
HINWEIS: Swagger wird für die Anforderung Senden verwendet wird, so ist es ziemlich unwahrscheinlich, dass der Fehler in Locke ist
UPDATE: So sieht es aus wie Spring nicht @RequestBody
für @GetMapping
unterstützt. Ich kann immer noch nicht herausfinden, warum? @DeleteMapping
mit @RequestBody
funktioniert gut
Hmmm .... aber GET kann auch Körper haben - https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html Und Frühling ermöglicht RequestBody für GetMapping zu verwenden –
Werfen Sie einen Blick auf diese Zeile, in dem gleichen Artikel - ** Sowohl HTTP GET und HTTP POST können verwendet werden, um die Suche mit Text auszuführen. Da nicht alle Clients GET mit body unterstützen, ist auch POST erlaubt. ** GET-Anfrage mit einem Body ist nach HTTP-Standard nicht korrekt. –
Also, was ist der Punkt - Spring unterstützt RequestBody für GetMapping nicht? –