2013-03-27 41 views
8

Spring FrameworkのRestTemplateを使用してJavaでRESTクライアントを作成しています。RestTemplate postForLocationからのSTRING応答を取得するにはどうすればよいですか?

私は投稿をpostForLocationで行う必要があるまで、すべてが問題ありません。

私がアクセスしているWebサービスは、POST ACTIONに関する情報を持つjsonを返します。

PHPでも問題はありませんが、RestTemplateを使ってJavaで行う方法はわかりません。

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; 
    } 

これはNULLを返します。

同じコードを使用していますが、getForObjectを使用して(もちろん、URLを何かに変更して)私は完全な応答を持っています。

どのようにレスポンスをpostForLocationから得るには?

Obs .:申し訳ありませんが、この質問はダムです。私はJavaで初心者です

+1

「回答」を回答として投稿する必要があります。 – Jaanus

+0

ありがとう...最初に私はそれを行う必要があります:] – Alexandre

答えて

1

感謝URLのインラインしかし、それは私にとっては大丈夫です。

+0

私はレスポンスとして文字列配列を取得しますが、どうすればこのAlexを取得できますか? – SAR

+0

こんにちは@Antony、遅く応答して申し訳ありません。実際に私も応答として文字列配列を受け取りました。この質問で私はあなたが私の作り方を理解することができると思います: http://stackoverflow.com/questions/16656938/parsing-json-string-as-simple-as-possible-with-gson – Alexandre

+0

私はそれをしました、私は、PHPのシリアル化された文字列と私はPHPのシリアライザを使用してJavaに変換する必要が出てくると混乱していた。ありがとう – SAR

7

postForLocationメソッドは、Locationヘッダーの値を返します。サーバーの応答を返すpostForObjectを使用する必要があります。

ので、このような:

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

これは、文字列として応答を返します。私はMAPと引数を使用し、それらを配置することはできませんいくつかの理由についてpostForObject

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

を使用して春とPOSTからの応答を取得する方法を考え出した答えの一つに

+0

チップのおかげで。それでも、あなたのコードは間違っている(ここではエラーメッセージが表示されます)が見えますが、私は今考え出した答えで私の質問を編集しました。ありがとう! – Alexandre

+0

あなたは大歓迎です! (エラーが申し訳ありません) –

関連する問題