代码之家  ›  专栏  ›  技术社区  ›  RunLoop

如何从短url中获取长url

  •  3
  • RunLoop  · 技术社区  · 14 年前

    我想确定短url的长url是什么。我尝试过使用http head请求,但是很少返回的header字段实际包含与目标/长url相关的任何数据。

    有: 1。有没有办法确定这个长url? 2。如果是,可以不下载目的地的主体就完成吗?

    谢谢你

    3 回复  |  直到 13 年前
        1
  •  5
  •   Jakob Borg    14 年前

    做一个 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
  •  6
  •   Seva Alekseyev    14 年前

    发出http get请求,不要遵循重定向,分析位置头。这就是重定向的目标所在。

    特别是在cocoa中,使用带有委托的异步请求,处理委托中的didReceiverResponse。第一个响应将是重定向响应。在处理程序中提取URL后,对连接调用[取消]。

    编辑:根据提供程序的不同,head而不是get可能工作,也可能不工作。如果不遵循重定向,响应数据无论如何也不会被加载,因此使用get没有传输开销。

        3
  •  3
  •   Ben Griswold    14 年前

    LongUrlPlease 提供扩展短URL的API。