Пытаясь следовать URL, а затем загрузить изображение - PullRequest
2 голосов
/ 21 марта 2012

Я пишу Java-программу, которая выходит и ищет твиттер, находит определенные ссылки на Instagram, а затем загружает изображение Instagram в каталог.Я написал весь код для поиска в Твиттере и сохранения изображений, но проблема в том, что я получаю URL в следующем формате

http://t.co/xxxxxxxx

Отпоиск в твиттере, который затем, если последует, преобразуется в URL-адрес instagram, такой как

http://instagr.am/p/xxxxxxxxxx/

Как я могу найти исходный URL-адрес для URL-адреса instagram и затем загрузить соответствующее изображение на этомстраница

Ответы [ 2 ]

3 голосов
/ 22 марта 2012

Instagram предоставляет вызов API для этого. Он возвращает все, что вам нужно в формате JSON, просто предоставьте короткий URL-адрес, например:

http://api.instagram.com/oembed?url=http://instagr.am/p/XXXXXX/

И вы получите такие данные:

{
    provider_url: "http://instagr.am/",
    title: "Rays",
    url: "http://distillery.s3.amazonaws.com/media/2010/10/02/7e4051fdcf1d45ab9bc1fba2582c0c6b_7.jpg",
    author_name: "danrubin",
    media_id: "5382_72",
    author_id: 72,
    height: 612,
    width: 612,
    version: "1.0",
    author_url: "http://instagr.am/",
    provider_name: "Instagram",
    type: "photo"
}

Или, если вам нужно только изображение, вы можете просто добавить / media к URL:

http://instagr.am/p/XXXXXX/media

2 голосов
/ 21 марта 2012

Я не уверен, сколько делает ваш код, но вы должны быть в состоянии сделать HTTP-запрос на эту ссылку t.co и получить поле Location в возвращаемых заголовках, которое содержит ссылку instagr.am. .

Пример ответа заголовка ссылки t.co:

HTTP/1.1 301 Moved Permanently
Date: Wed, 21 Mar 2012 04:48:00 GMT
Server: hi
Location: http://instagr.am/p/XXXXXX/
Cache-Control: private,max-age=300
Expires: Wed, 21 Mar 2012 04:53:00 GMT
Connection: close
Content-Type: text/html; charset=UTF-8

Как видите, поле Location - это то, которое вы хотите проанализировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...