Ruby를 사용하여 짧은 URL (tinyURL, bitly 등)을 해당 긴 URL로 변환하려면 어떻게해야합니까?짧은 URL에서 긴 URL을 가져 오는 방법은 무엇입니까?
7
A
답변
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/
그래서 루비 비슷한 뭔가가 있어야합니다 :
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를 사용할 수 있습니다.
분명히 말해서 리디렉션의 대상을 찾는 효과적인 방법입니다. –
주어진 위치의 헤더도 확인하여 일련의 리디렉션을 확인할 수 있습니다. – rampion