我想确定一个简短网址的长网址是什么。我尝试过使用http HEAD请求,但很少有返回的头字段实际上包含与destination / long url相关的任何数据。
有: 1.有什么方法可以确定长网址吗? 2.如果是这样,可以在不下载目的地主体的情况下完成吗?
谢谢
答案 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。