Как получить ссылку аватара facebook напрямую по id - PullRequest
1 голос
/ 23 июля 2011

Я использую 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

Я хочу получить прямую ссылку. Пожалуйста, помогите мне.

1 Ответ

3 голосов
/ 23 июля 2011

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

...