POST-Anforderung über RestTemplate in JSON
Ich nicht finden, eine Beispiel, wie mein problem zu lösen, so möchte ich Sie bitten, für Hilfe. Ich kann nicht einfach senden Sie POST-Anforderung mit RestTemplate Objekt im JSON -
Jedes mal, wenn ich bekommen:
org.springframework.web.client.HttpClientErrorException: 415 Unsupported Media Type
Benutze ich RestTemplate in dieser Weise:
...
restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> list = new ArrayList<HttpMessageConverter<?>>();
list.add(new MappingJacksonHttpMessageConverter());
restTemplate.setMessageConverters(list);
...
Payment payment= new Payment("Aa4bhs");
Payment res = restTemplate.postForObject("http://localhost:8080/aurest/rest/payment", payment, Payment.class);
Was ist meine Schuld?
die url ist nicht mehr gültig
Danke - dieser link funktioniert, wie dieses schreiben: Frühling.io/guides/gs/Konsum-rest
Zu den speziellen OP-Problem, vor, Sie sind vermutlich fehlt ein HTTP-header mit dem entsprechenden Inhalt zu geben, siehe die Antwort von morganw09dev unten.
Diese Probleme beziehen sich zumeist auf die Server-API Konfiguration. Testen Sie die Server-API mit einem Standalone-client (wie Postman ) und replizieren die gleiche Header in Ihrer Anfrage. Zumindest in meinem Fall, die hat den Trick.
B, wenn diese beantwortet wurde bitte markieren Sie die Antwort
Danke - dieser link funktioniert, wie dieses schreiben: Frühling.io/guides/gs/Konsum-rest
Zu den speziellen OP-Problem, vor, Sie sind vermutlich fehlt ein HTTP-header mit dem entsprechenden Inhalt zu geben, siehe die Antwort von morganw09dev unten.
Diese Probleme beziehen sich zumeist auf die Server-API Konfiguration. Testen Sie die Server-API mit einem Standalone-client (wie Postman ) und replizieren die gleiche Header in Ihrer Anfrage. Zumindest in meinem Fall, die hat den Trick.
B, wenn diese beantwortet wurde bitte markieren Sie die Antwort
InformationsquelleAutor Johnny B | 2010-11-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Technik bei mir funktioniert:
Ich hoffe, das hilft
Für mich war es nicht notwendig, die Angabe von Headern. Ich habe das HttpEntity mit einem einzigen parameter.
Methode
.put()
istvoid
!Mit
postForEntity(url, entity, String.class)
arbeiten in den Ort derput(url, entity)
In meinem Fall
put
Methode wirftException in thread "main" org.springframework.web.client.HttpClientErrorException: 405 HTTP method PUT is not supported by this URL
InformationsquelleAutor kanu dialani
Lief ich über dieses problem beim Versuch zu Debuggen, einen REST-Endpunkt. Hier ist ein einfaches Beispiel für die Verwendung von Spring Klasse RestTemplate, um eine POST-Anfrage, die ich verwendet. Es hat mich schon ein bisschen eine lange Zeit, um Stück zusammen, der code aus unterschiedlichen Orte, um eine funktionierende version.
Insbesondere die JSON-parser meine rest-Endpunkt wurde mit Hilfe benötigten Anführungszeichen um Feld-Namen, so dass ist der Grund, warum ich ausgebrochen sind die doppelten Anführungszeichen in meinem requestJson String.
Kann Frühling verwenden Sie die message-Konvertern für die automatische Konvertierung der Java-Objekte nach json wie in Restful API mit RestTemplate?
Einstellung Medientyp APPLICATION_JSON ist der Schlüssel, um das problem zu beheben.
Ich beschloss, dass ich mein problem mit HttpEntity<String> entity = new HttpEntity<Zeichenfolge>(requestJson,Header); diese Zeile
InformationsquelleAutor Morgan Kenyon
Habe ich mit rest-Vorlage mit JSONObjects wie folgt:
Wie entwickelten sich über den code : curl -vvv -X POST "localhost:8080/SillyService_SRC/oauth/..." ?
Lepistö Wie kann ich abrufen die Parameter von json auf server Ende??
Ich verstehe nicht, was du meinst... das ist server-side code in der Antwort. Wenn Sie denken, wie zum Parsen der json-Antwort, es hängt davon ab, framework, die Sie verwenden.
Ich meine, wie zum Parsen der json-Antwort in das andere Ende darunter, wie um die Antwort zu erhalten, die in java??Sie haben gebucht, nur der code für ein Ende(ie, server-Seite).
InformationsquelleAutor Mikael Lepistö
Als angegeben hier ich denke, Sie müssen zum hinzufügen einer
messageConverter
fürMappingJacksonHttpMessageConverter
InformationsquelleAutor Raghuram
Wenn du mit Spring 3.0, eine einfache Möglichkeit zu vermeiden, die org.springframework.web.client.HttpClientErrorException: 415 Unsupported Media Type Ausnahme ist, gehören die jackson-jar-Dateien in den classpath, und verwenden Sie
mvc:annotation-driven
config-element. Wie hier angegeben.Ich zog meine Haare aus versuchen, um herauszufinden, warum die mvc, ajax- app klappte ohne spezielle config für die
MappingJacksonHttpMessageConverter
. Wenn du den Artikel gelesen den ich weiter oben verlinkt eng:InformationsquelleAutor Mike G
"415 Unsupported Media Type" - Fehler ist Ihnen zu sagen, dass der server nicht akzeptieren, Ihr POST-Anfrage. Ihre Anfrage ist absolut in Ordnung, es ist der server falsch konfiguriert ist.
MappingJacksonHttpMessageConverter
automatisch die Anfrage content-type-headerapplication/json
, und meine Vermutung ist, dass Ihr server abgelehnt. Sie haven T erzählte Sie uns etwas über Ihre server-Konfiguration, obwohl, so kann ich wirklich nicht raten Ihnen auf, dass.InformationsquelleAutor skaffman
Mache ich auf diese Weise und es funktioniert .
//Pass Header hier
Hoffe, das hilft
InformationsquelleAutor Yakhoob
War ich immer dieses problem und ich bin mit Spring RestTemplate auf dem client und Spring Web auf dem server. Beide APIs haben sehr schlechte Fehler-reporting, so dass Sie extrem schwierig zu entwickeln.
Nach vielen Stunden versuchen alle möglichen Experimente habe ich herausgefunden, dass das Problem verursacht wird, durch die übergabe einer null-Referenz für die POST-body statt der erwarteten Liste. Ich vermute, dass RestTemplate kann nicht bestimmen, wird der content-type von einem null-Objekt, aber nicht über Sie Klagen. Nach dem hinzufügen des richtigen Header, ich habe immer eine andere server-side Ausnahme im Frühjahr, bevor die Eingabe meiner service-Methode.
Das Update war, zu übergeben, wird eine leere Liste vom client anstelle von null. Keine Header sind erforderlich, da der Standard content-type wird verwendet für nicht-null-Objekten.
InformationsquelleAutor Alex Worden
Dieser code ist für mich zu arbeiten;
InformationsquelleAutor Ganesh
Wenn Sie nicht wollen, um die Antwort
Wenn Sie brauchen, Reaktion, Prozess
InformationsquelleAutor Vipindas Gopalan
Für mich Fehler aufgetreten ist mit diesem setup:
AndroidAnnotations
Spring Android RestTemplate Module
und ...
GsonHttpMessageConverter
Android annotations hat einige Probleme mit dieser umgewandelt zu generieren
POST
Anfrage ohne parameter. Einfach parameternew Object()
es gelöst für mich.InformationsquelleAutor Mateusz Jablonski