Как получить длинный URL из короткого URL - PullRequest
3 голосов
/ 12 марта 2010

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

Есть ли: 1. Есть ли способ определить длинный URL? 2. Если это так, можно ли это сделать без загрузки тела пункта назначения?

Спасибо

Ответы [ 3 ]

6 голосов
/ 12 марта 2010

Выполните HTTP-запрос GET, не выполняйте перенаправление, проанализируйте заголовок Location. Вот где цель перенаправления.

В частности, в Какао, используйте асинхронный запрос с делегатом, обрабатывайте didReceiveResponse в делегате. Первый ответ будет перенаправлением. После того, как вы извлечете URL в обработчике, вызовите [отмена] для соединения.

РЕДАКТИРОВАТЬ: в зависимости от поставщика, HEAD вместо GET может работать или не работать. И если вы не будете следовать перенаправлению, данные ответа не будут загружены в любом случае, поэтому нет необходимости в передаче GET.

5 голосов
/ 12 марта 2010

Сделайте HEAD и найдите заголовок Location.

% telnet bit.ly 80
Trying 168.143.173.13...
Connected to bit.ly.
Escape character is '^]'.
HEAD /cwz5Jd HTTP/1.1
Host: bit.ly

HTTP/1.1 301 Moved
Server: nginx/0.7.42
Date: Fri, 12 Mar 2010 18:37:46 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Set-Cookie: _bit=4b9a89fa-002bd-030af-baa08fa8;domain=.bit.ly;expires=Wed Sep  8 14:37:46 2010;path=/; HttpOnly
Location: http://www.engadget.com/2010/03/12/motorola-milestone-with-android-2-1-hitting-bulgaria-by-march-20/?utm_source=twitterfeed&utm_medium=twitter
MIME-Version: 1.0
Content-Length: 404
3 голосов
/ 12 марта 2010

LongUrlPlease предлагает API, который расширяет короткие URL-адреса.

...