7

Ruby を使用して、短い URL (tinyURL、bitly など) を対応する長い URL に変換するにはどうすればよいですか?

4

3 に答える 3

14

私はRubyを使用していませんが、一般的な考え方は、HTTP HEADリクエストをサーバーに送信することです。サーバーLocationは、URIを含むヘッダーとともに301レスポンス(Moved Permanently)を返します。

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

応答:

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

これは、実際の URL を開くよりもはるかに高速であり、リダイレクトされた URL を実際にフェッチする必要はありません。また、tinyurl サービスとの連携も良好です。

Ruby 内の HTTP または curl API を調べます。それはかなり簡単なはずです。

于 2009-05-23T19:01:09.493 に答える
11

httpclient ruby​​gem を使用してヘッダーを取得できます

#!/usr/bin/env ruby

require 'rubygems'
require 'httpclient'

client = HTTPClient.new

result = client.head(ARGV[0])
puts result.header['Location']
于 2009-05-23T21:15:20.800 に答える
2

PythonのbitlyAPIの優れたラッパーがここにあります: http ://code.google.com/p/python-bitly/

したがって、Rubyにも同様の何かがあるはずです。

于 2009-06-09T09:31:52.787 に答える