2009-05-23 4 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 또는 컬 API를 살펴보십시오. 상당히 쉬워야합니다. http://code.google.com/p/python-bitly/

그래서 루비 비슷한 뭔가가 있어야합니다 :

+0

분명히 말해서 리디렉션의 대상을 찾는 효과적인 방법입니다. –

+5

주어진 위치의 헤더도 확인하여 일련의 리디렉션을 확인할 수 있습니다. – rampion

11

당신은 여기 파이썬에서 bitly API에 대한 좋은 래퍼가 헤더

#!/usr/bin/env ruby 

require 'rubygems' 
require 'httpclient' 

client = HTTPClient.new 

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

그래서 마지막 세 줄을 하나로 요약하면 다음과 같이 쓸 수 있습니다 :'longUrl = HTTPClient.new.head ("http://bit.ly/GFscreener12") .header [ 'Location'] [0]' – Marcos

2

를 얻기 위해 HttpClient를 rubygem를 사용할 수 있습니다.