2013-03-27 22 views
8

Spring Framework'den RestTemplate ile Java'da bir REST İstemcisi oluşturuyorum.RestTemplate postForLocation'dan STRING yanıtı nasıl alınır?

postForLocation ile bir gönderi yapana kadar her şey yolunda.

i erişim POST EYLEM hakkında bilgiler ile bir json dönmek yaşıyorum webcoder. PHP

gayet ama gerçekten RestTemplate ile Java nasıl anlamıyorum.

public String doLogin() 
    { 
     Map<String, String> args = new HashMap<String, String>(); 

     args.put("email", AUTH_USER); 
     args.put("token", AUTH_PASS); 

     String result = restTemplate.postForLocation(API_URL + "account/authenticate/?email={email}&token={token}", String.class, args); 

     return result; 
    } 

Bu, NULL değerini döndürür.

Aynı kodla ancak getForObject kullanarak (ve elbette URL'yi doğru bir şeye çevirerek) tam bir yanıtım var.

Öyleyse ... postForLocation'dan nasıl olur?

Gözl .: Bu soru dilsiz ise üzgün. Ben postForLocation yöntem Konum başlığı için değeri döndürür Java

+1

Sen cevap olarak "cevabını" gönderilmesi gerekiyor. – Jaanus

+0

Teşekkürler ... ilk kez bunu yapmam gerekiyor:] – Alexandre

cevap

1

Teşekkür URL’de satır içi. Ama bu benim için sorun değil.

+0

Yanıt olarak bir dizi dizisi alıyorum, Bunu nasıl alabilirim Alex? – SAR

+0

Merhaba @Antony, geç cevap için özür dilerim. Aslında yanıt olarak bir String Dizisi aldım. Bu soruya ben yaptığım nasıl anlamaya düşünüyorum: http://stackoverflow.com/questions/16656938/parsing-json-string-as-simple-as-possible-with-gson – Alexandre

+0

ben bu yapmış, dışarı koymak ile karıştırılmış, PHP seri hale getirilmiş string ve php serializer kullanarak Java'ya dönüştürmek zorundayım. Teşekkürler – SAR

7

yılında acemiyim. Sunucunun yanıtını döndüren postForObject kullanmalısınız. Böyle

Yani:

String result = restTemplate.postForObject(API_URL + "account/authenticate/?email={email}&token={token}", String.class, args); 

Bu dize olarak yanıt dönecektir. i MAP ile argümanları kullanmak ve bunları koymak olamaz Nedense postForObject

String result = restTemplate.postForObject(API_URL + "account/authenticate/?email="+ AUTH_USER +"&token="+ AUTH_PASS, null, String.class); 

kullanarak Bahar ile POST yanıt almak nasıl düşündüm cevapları birine

+0

Bahşiş için teşekkürler. Öyle olsa bile, kodunuz yanlış görünüyor (burada bir hata mesajı var), ama şimdi anladım ve sorumu cevabımla değiştirdim. Teşekkürler! – Alexandre

+0

Rica ederim! (Hata için özür dilerim) –