我使用http://graph.facebook.com/id/picture
让头像Facebook显示ImageView
android。但它不会返回图像。它返回一些响应头,包括302重定向和位置头。
当我在浏览器中运行链接时,它会直接显示链接。
http://graph.facebook.com/hieu.trankim/picture
直接链接: http://profile.ak.fbcdn.net/hprofile-ak-snc4/203317_1661930338_3279866_q.jpg
我希望得到直接链接。请帮帮我。
答案 0 :(得分: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方法)。