2009-05-23 22 views

答えて

14

私はRubyを使用しませんが、HTTP HEAD要求をサーバに送信して、そのURIを含むLocationヘッダを持つ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サービスでうまくいく。

ルビーのHTTPまたはcurl APIを調べます。それはかなり簡単なはずです。 http://code.google.com/p/python-bitly/

だからRuby用の似たような存在でなければなりません。

+0

明らかに、これはリダイレクトの宛先を見つける有効な方法です。 –

+5

特定の場所のヘッダーも確認して、リダイレクトの連鎖に従うことができます。 – rampion

11

現在地利用できるPythonでbitly APIのための偉大なラッパーがあり、ヘッダー

#!/usr/bin/env ruby 

require 'rubygems' 
require 'httpclient' 

client = HTTPClient.new 

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

最後の3行を1つに集約すると便利です: 'longUrl = HTTPClient.new.head(" http://bit.ly/GFscreener12 ").header ['Location'] [0]' – Marcos

2

を取得するためにHTTPClientをrubygemを使用することができます。

関連する問題