How to get long URL from short URL?

岁酱吖の 提交于 2019-11-28 21:41:33

问题


Using Ruby, how do I convert the short URLs (tinyURL, bitly etc) to the corresponding long URLs?


回答1:


I don't use Ruby but the general idea is to send an HTTP HEAD request to the server which in turn will return a 301 response (Moved Permanently) with the Location header which contains the URI.

HEAD /5b2su2 HTTP/1.1
Host: tinyurl.com
Accept: */*

RESPONSE:

HTTP/1.1 301 Moved Permanently
Location: http://stackoverflow.com
Content-type: text/html
Date: Sat, 23 May 2009 18:58:24 GMT
Server: TinyURL/1.6

This is much faster than opening the actual URL and you don't really want to fetch the redirected URL. It also plays nice with the tinyurl service.

Look into any HTTP or curl APIs within ruby. It should be fairly easy.




回答2:


You can use the httpclient rubygem to get the headers

#!/usr/bin/env ruby

require 'rubygems'
require 'httpclient'

client = HTTPClient.new

result = client.head(ARGV[0])
puts result.header['Location']



回答3:


There is a great wrapper for the bitly API in Python available here: http://code.google.com/p/python-bitly/

So there must be something similar for Ruby.



来源:https://stackoverflow.com/questions/902192/how-to-get-long-url-from-short-url

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!