2013-05-06 13 views
13

Nie jestem zaznajomiony z Spring RestTemplate.Sprężyna spustowa Napis post odpowiedzi

Ale do tego projektu muszę użyć Spring RestTemplate, aby wysłać wywołanie POST do spożywania api odpoczynku.

Używam tego kodu:

String restCall = restTemplate.postForObject(url+restParm, null, String.class); 

ta działa poprawnie.

Chciałbym przywrócić kod stanu HTTP (E.g: 200 OK.). Jak mogłem to zrobić? Dzięki.

+0

@Sotirios Delimanolis. Dobrze, więc czego powinienem użyć? – Zamboo

+0

Sprawdź link, który opublikowałem, składniki HTTP Apache. To pokazuje przykład: http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/HttpClient.html Tracisz trochę, zyskujesz trochę. –

+0

A raczej, spójrz na ten http://stackoverflow.com/questions/3322381/spring-resttemplate-behavior-when-handling-responses-i-i-a-a-status-no-no-content. Zaimplementuj własne 'ResponseExtractor' i wywołaj' restTemplate.execute (...) ' –

Odpowiedz

35

użyć metody postForEntity następująco ...

ResponseEntity<String> response = restTemplate.postForEntity(url+restParm, null, String.class); 
HttpStatus status = response.getStatusCode(); 
String restCall = response.getBody(); 
+0

Jak uzyskać nagłówki, jeśli chcę je w folderze błędów? – simonides

+0

co jeśli nie znam klasy odpowiedzi? – Normal

+0

Odpowiedź będzie zawsze dostępna jako ciąg znaków, tak jak w moim przykładzie. Jeśli odpowiedź jest w formacie, który można powiązać z obiektem, takim jak json lub xml, możesz określić, że jako typ odpowiedzi i Sprężyna zwiąże go z klasą za Ciebie. Więcej informacji na temat wiązania znajduje się w dokumentacji Spring. – hyness

1

chciałbym podzielić się moim doświadczeniem w stosowaniu Wiosna RestTemplate. Naprawdę zajęło mi to dużo czasu, aby to naprawić. Moje żądanie: 1) Wyślij POST do serweraURI z parametrami ustawionymi w treści HTTP. Parametry powinny być zawijane jako dane formularzy. 2). Uzyskaj odpowiedź z danymi JSON w treści odpowiedzi i niestandardową nazwą klasy przekazywana jest do restTemplate. Wynik: Alwasy otrzymał NULL body w odpowiedzi.

Szukałem na stronie i zmęczyłem każdą sugestię. ciało jest wciąż puste. Próbowałem więc powiedzieć, że wiosna po prostu zwróci mi String zamiast klasy Custom. Widziałem, że zwracany jest ciąg JSON. W związku z tym powodem, dla którego treść odpowiedzi jest pusta, jest fakt, że Spring nie może parsować JSON do mojej niestandardowej klasy.

Wreszcie, naprawiłem problem z NULL body przez dodanie adnotacji @JsonProperty w mojej dostosowanej definicji klasy. (Użyłem @SerializedName w mojej dostosowanej klasie przed i Spring nie może parsować JSON do mojego obiektu)

+0

Cześć Serena, Witamy w StackOverflow. Ta społeczność skupia się na pytaniach i odpowiedziach.Niestety Twój wpis nie zawiera odpowiedzi na to pytanie. Zapraszam Cię na [wyprawę] (http://stackoverflow.com/tour), aby poznać szczegóły na temat działania tej społeczności. Ponadto, jeśli uważasz, że masz cenne doświadczenie, zawsze możesz zadać nowe pytanie i odpowiedzieć na nie samodzielnie. Nie ma w tym nic złego, w rzeczywistości [jest zachęcane] (http://stackoverflow.com/help/self-answer)! Baw się dobrze! :) – Sam

Powiązane problemy