Ich arbeite mit Spring MVC mit JSON-Objekten. Während ich versuche, ein JSON-Objekt von RESTClient zu senden, bekomme ich
HTTP Status 400 - Die vom Client gesendete Anfrage war syntaktisch falsch ().
Dies ist mein Controller
%Vor% Meine Anfrage-URL: http://localhost:8080/Prime/addTask
Mein Json-Objekt:
{"taskName": "nichts", "taskId": 1234, "taskDesc": "nichts macht"}
Ich habe auch versucht, in RESTClient "Content-Type: application / json" anzugeben, bekomme aber immer noch den gleichen Fehler
Ich habe kürzlich eine ähnliche Situation mit einer JSON-Zeichenfolge im Anfragetext angetroffen und ein sehr ähnliches Spring-Setup verwendet. In meinem Fall habe ich keinen String-Parameter angegeben und es selbst deserialisiert. Ich ließ Spring das tun:
%Vor% Ich bekam einen HTTP-Fehler 400 "Die vom Client gesendete Anfrage war syntaktisch falsch" Antwort. Bis ich merkte, dass es auf der @RequestBody MyJsonValueObject
keinen Standardkonstruktor gab, gab es Probleme mit der Deserialisierung. Dieses Problem wurde jedoch auf diese Weise dargestellt.
Wenn Sie POST und Objekte verwenden und Fehler wie diese erhalten, stellen Sie sicher, dass Sie einen Standardkonstruktor haben ! Fügen Sie eine JUnit hinzu, um sicherzustellen, dass Sie das Objekt deserialisieren können.
Hinweis : Ich sage nicht, dass dies der einzige Grund ist, warum Sie diesen Fehler erhalten. Der ursprüngliche Fall verwendete nur String (der einen Standardkonstruktor hat!), Also ist es ein wenig anders. Aber in beiden Fällen scheint die Anfrage-URI der richtigen Methode zugeordnet worden zu sein und etwas ist schiefgelaufen, als versucht wurde, Parameter aus der HTTP-Anfrage zu extrahieren.
Mein Problem lag an der inkorrekten Zuordnung des @RequestBody-Objekts.
Mein Anfragetext sieht so aus
%Vor%Ich hatte den folgenden Code in meinem Controller
%Vor%Das gibt mir HTTP 400, weil Spring nicht weiß, wie ich meine JSON-Daten an eine Liste binden soll.
Ich habe das RequestBody-Objekt folgendermaßen geändert:
%Vor%und definiert ObjectiveDto wie folgt
%Vor%Dies hat den HTTP 400-Fehler behoben.
Tags und Links spring json rest-client