Wie kann man ein array übergeben in einem BEITRAG mit dem Frühling RestTemplate?
Ich habe Schwierigkeiten, die ein array übergeben, in einem POST mit Feder RestTemplate. Das folgende ist mein code, den ich verwende:
Ich rufe die RestTemplate hier:
private static void sendEntries() {
RestTemplate restTemplate = new RestTemplate();
String uri = "http://localhost:8080/api/log/list.json";
//Both LogEntry and ExceptionEntry extend Entry
LogEntry entry1 = new LogEntry();
ExceptionException entry2 = new ExceptionEntry();
Entry[] entries = {entry1, entry2};
entries = restTemplate.postForObject(uri, entries, Entry[].class);
System.out.println(new Gson().toJson(entries));
}
Und der Controller enthält:
@RequestMapping(value = "api/log/list", method = RequestMethod.POST)
public @ResponseBody Entry[] saveList(@RequestBody Entry[] entries) {
for (Entry entry : entries) {
entry = save(entry);
}
return entries;
}
Diese Ergebnisse in einem:
org.springframework.web.client.HttpClientErrorException: 400 Bad Request
Sieht es nicht aus, das array wird dem Auftrag Hinzugefügt. Alle anderen POST-request funktionieren, wenn ich versuche nicht an ein array übergeben. Ich bin mir nur nicht sicher, was ich tun müssen, um das array zu übergeben, richtig.
Ist das der richtige Weg, es zu tun? Ist es möglich, übergeben eine Sammlung statt?
Möglich, Duplikat der Wie die Verwendung von Spring RestTemplate POST ein array von strings
InformationsquelleAutor Joe | 2013-11-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie können dies überprüfen, post: Gewusst wie: List oder String-array getForObject mit Feder RestTemplate, Lösung für diesen Beitrag ist:
Liste oder eine andere Art der Objekte kann die post mit RestTemplate ist postForObject Methode. Meine Lösung ist wie folgt:
controller:
Erstellen Sie ein request-Objekt für die Buchung zum service:
Erstellen Sie ein Antwort-Objekt, um Werte aus service:
Post-point-Liste mit request-Objekt und als Antwort bekommen-Objekt vom Dienst:
InformationsquelleAutor vtokmak
Wie die POST-array:
Die POST-Anforderung wird nächste Struktur:
Auf der Server-Seite:
InformationsquelleAutor Yuliia Ashomok
Versuchen, dieses Beispiel
Ändern Ihre Anfrage Zuordnung von
zu
und Ihre URL in restTemplate
ändern Sie die URl in das unten gegebene format
Ich kann nicht angewendet werden, können Sie selbst ausprobieren, die ich Euch gab, Zeiger
Überprüfen Sie den link unter stackoverflow.com/questions/14153036/...
Ich habe gelesen, dass die post vor der Veröffentlichung meiner eigenen Frage. Ich bin nicht übergeben, String [], wie er ist. Er ist einfach die Verkettung von strings und baut seine uri. Ich könnte einfach das gleiche tun mit JSON und konvertieren Sie Sie zurück, um Objekte in der Steuerung, aber ich versuche zu vermeiden, dass, wenn RestTemplate wird es für mich tun. Auch möchte ich nicht ändern, meine RequestMethod zu BEKOMMEN.
hat u versuchen Sie, T> T postForObject(String url, Object-request, Class<T> responseType, Map<String,?> uriVariables) Erstellen Sie eine neue Ressource durch die Veröffentlichung des Objektes auf den URI-template, und gibt der Darstellung gefunden, die in der Reaktion.
InformationsquelleAutor constantlearner