如何从短网址获取长网址

时间:2010-03-12 18:26:38

标签: cocoa-touch cocoa http bit.ly short-url

我想确定一个简短网址的长网址是什么。我尝试过使用http HEAD请求,但很少有返回的头字段实际上包含与destination / long url相关的任何数据。

有: 1.有什么方法可以确定长网址吗? 2.如果是这样,可以在不下载目的地主体的情况下完成吗?

谢谢

3 个答案:

答案 0 :(得分:6)

发出HTTP GET请求,不要按照重定向,分析Location标头。这就是重定向的目标。

特别是在Cocoa中,使用带委托的异步请求,处理委托中的didReceiveResponse。第一个响应是重定向。在处理程序中提取URL后,请在连接上调用[cancel]。

编辑:取决于提供者,HEAD而不是GET可能会或可能不会。如果您不遵循重定向,则无论如何都不会加载响应数据,因此没有传输开销来进行GET。

答案 1 :(得分:5)

执行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

答案 2 :(得分:3)

LongUrlPlease提供了一个扩展短网址的API。