2011-07-23 8 views
1

私はhttp://graph.facebook.com/id/pictureを使用して、アバターのFacebookにImageViewのアンドロイドを表示させます。しかし、それはイメージを返さない。これは、302リダイレクトと場所ヘッダーを含むいくつかの応答ヘッダーを返します。アバターフェイスブックを直接IDで取得する方法

ブラウザでリンクを実行すると、直接リンクが表示されます。

http://graph.facebook.com/hieu.trankim/picture

直接リンク: http://profile.ak.fbcdn.net/hprofile-ak-snc4/203317_1661930338_3279866_q.jpg

私は直接リンクを取得したいです。私を助けてください。

答えて

3

302リダイレクトは新しい場所をLocation:ヘッダーとして提供します。 HttpURLConnectionクラスがリダイレクトに従わないようにするには、次のようにします。HttpURLConnection.setFollowRedirects(false);

したがって直接リンクすることによって得ることができる。

String address = "http://graph.facebook.com/hieu.trankim/picture"; 
URL url = new URL(address); 
HttpURLConnection.setFollowRedirects(false); //Do _not_ follow redirects! 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
String newLocation = connection.getHeaderField("Location"); 

(明確にするために省略例外)

リダイレクトリンクは、その後、newLocation変数に格納されます。 サイトに接続して再度フォローする場合に備えて、setFollowRedirects(true)を後で変更することを忘れないでください。 (またはsetInstanceFollowRedirectsメソッドを使用します)。

出典:HttpURLConnection JavaDocs

関連する問題