Frühling: Wie Sie die get-Parameter aus dem POST-body?
Web-service mit spring, in dem ich die params aus dem Körper, der meine post-Anfrage? Der Inhalt des Körpers ist, wie:-
source=”mysource”
&json=
{
"items": [
{
"username": "test1",
"allowed": true
},
{
"username": "test2",
"allowed": false
}
]
}
Und die web-service-Methode sieht wie folgt aus:-
@RequestMapping(value = "/saveData", headers="Content-Type=application/json", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<Boolean> saveData(@RequestBody String a) throws MyException {
return new ResponseEntity<Boolean>(uiRequestProcessor.saveData(a),HttpStatus.OK);
}
Bitte lassen Sie mich wissen, wie bekomme ich die params aus dem Körper? Ich kann den ganzen Körper in meinem string, aber ich glaube nicht, das wäre ein Gültiger Ansatz. Bitte lassen Sie mich wissen, wie ich weiter fortfahren.
- Wenn Sie versuchen, zu konsumieren, ein JSON-Objekt-Ihre Anfrage ist nicht gültig.
- So sollte ich verwenden, headers="Content-Type=application/x-www-form-urlencoded" ?? rechts
- Nein, Sie müssen senden das JSON-Objekt in den request-body mit contentType application/json. Der handler sollte akzeptieren ein Objekt für Ihre JSON-Objekt als argument.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie get-Parameter aus der Anfrage.
Können Sie den kompletten Beitrag Körper in ein POJO. Folgende ist so etwas ähnliches wie
Wobei jedes Feld in Pojo (Einschließlich getter/setter) sollte mit dem Json-request-Objekt, das der controller erhält..
Können Sie binden die json um ein POJO mit
MappingJacksonHttpMessageConverter
. Damit Ihr controller Signatur Lesen kann :-Wo RequestDTO muss die bean entsprechend kommentierte die Arbeit mit jackson zu serialisieren/Deserialisieren. Ihre *-servlet.xml Datei sollte in der Jackson-message converter registriert in RequestMappingHandler wie folgt :-
In der Klasse zu tun, wie diese
In der Seite tun Sie dies:
Müssen Sie diese Importe...
Und, wenn Sie mit Maven, müssen Sie auch dies in den Abhängigkeiten block der pom.xml Datei in Ihr Projekt-Basis-Verzeichnis.
Dann die oben genannten Update von Jason arbeiten:
Können Sie versuchen, mit @RequestBodyParam
https://github.com/LambdaExpression/RequestBodyParam