3

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

有没有: 1.有什么方法可以确定长网址吗?2、如果可以,不下载目的地的body可以吗?

谢谢

4

3 回答 3

6

发出 HTTP GET 请求,不要跟随重定向,分析 Location 标头。这就是重定向的目标所在。

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

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

于 2010-03-12T18:38:39.650 回答
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
于 2010-03-12T18:38:43.363 回答
3

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

于 2010-03-12T18:39:09.947 回答