Mit dem Befehl curl:
%Vor%Ich erhalte eine JSON-Antwort:
%Vor%Ich speichere die Antwort auf eine TXT-Datei und analysiere sie mit Jackson, und alles ist in Ordnung
%Vor%und ich nehme an, ich sollte das gleiche Ergebnis mit RestTemplate erhalten, aber es ist nicht der Fall
%Vor%Ich habe stattdessen einen Fehler erhalten
%Vor%Ich habe versucht, den Inhaltstyp festzulegen:
%Vor%aber dann habe ich einen Kompilierungsfehler
%Vor%Ich habe auch versucht, einen Jackson Message Converter hinzuzufügen
%Vor%Aber dann habe ich diesen Fehler:
%Vor%Ich habe auch versucht, die Klasse
hinzuzufügen %Vor%aber ich habe den Fehler:
%Vor%Das Hauptproblem ist hier der Inhaltstyp [text / html; charset = iso-8859-1] , der vom Dienst empfangen wird, der tatsächliche Inhaltstyp sollte jedoch application / json; charset lauten = iso-8859-1
Um dies zu umgehen, können Sie einen benutzerdefinierten Nachrichtenkonverter einführen. und es für alle Arten von Antworten registrieren (d. h. den Header des Antwort-Inhaltstyps ignorieren). Genau so
%Vor%Ich hatte ein sehr ähnliches Problem, und es stellte sich heraus, dass es ziemlich einfach war; Mein Client enthielt keine Jackson-Abhängigkeit, auch wenn der Code korrekt kompiliert wurde, wurden die auto-magic-Konverter für JSON nicht einbezogen. Siehe diese RestTemplate-bezogene Lösung.
Kurz gesagt, habe ich meiner pom.xml eine Jackson-Abhängigkeit hinzugefügt, und es hat einfach funktioniert:
%Vor%Wenn die obige Antwort von @Ilya Dyoshin noch nicht abgerufen wurde, versuchen Sie, die Antwort in ein String-Objekt zu bekommen.
(Für meinen Selbstgedanken wurde der Fehler durch das Code-Snippet von Ilya gelöst, die abgerufene Antwort war ein Fehler (Fehler) vom Server.)
%Vor%und Cast zum ResponseObject DTO (Json)
%Vor%Tags und Links spring json rest spring-mvc resttemplate