Mit Spring RestTemplate zu POST-params mit Objekten
Ich bin versucht, senden Sie eine POST-Anforderung mit Feder RestTemplate Funktionalität, aber ich habe ein Problem, das senden eines Objekts. Hier ist der code, den ich verwende, um die Anfrage zu senden:
RestTemplate rt = new RestTemplate();
MultiValueMap<String,Object> parameters = new LinkedMultiValueMap<String,Object>();
parameters.add("username", usernameObj);
parameters.add("password", passwordObj);
MyReturnObj ret = rt.postForObject(endpoint, parameters, MyRequestObj.class);
Ich habe auch eine Protokollierung von interceptor also ich kann Debuggen, die input-Parameter, und Sie sind fast richtig!!!! Derzeit ist die usernameObj
und passwordObj
Parameter erscheinen als solche:
{"username":[{"testuser"}],"password":[{"testpassword"}]}
Was ich wollen Sie Aussehen mag, ist die folgende:
username={"testuser"},password={"testpassword"}
Davon ausgehen, dass usernameObj
und passwordObj
sind Java-Objekte, die in JSON umgewandelt.
Was mache ich falsch?
InformationsquelleAutor Matt Crysler | 2014-07-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ordnung, also landete ich herauszufinden, zum größten Teil. Ich landete nur zu schreiben, ein marshaller/unmarshaller so konnte ich verarbeiten es zu einem viel mehr feinkörnigen Ebene. Hier war meine Lösung:
Diese Lösung hat mir erlaubt, zu Steuern, wie das Objekt gemarshallt/unmarshallt und einfach Beiträge Zeichenfolgen anstatt Feder zu handhaben, das Objekt direkt. Seine dazu beigetragen, immens!
Es ist besser, unmarshalResponse code hier ein und vervollständigen Sie Ihre Antwort!
InformationsquelleAutor Matt Crysler
Für Die Client-Seite
Übergeben das Objekt als json-string ist, verwenden
MappingJackson2HttpMessageConverter
.Für die Server-Seite spring-Konfiguration
InformationsquelleAutor Zaw Than oo