2009-05-23 19 views

cevap

14

Ruby kullanmıyorum ancak genel fikir, sunucuya bir HTTP HEAD isteği göndermek ve bu da URI'yi içeren Location başlığına sahip 301 yanıtı (Kalıcı Olarak Taşındı) döndürecektir.

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

TEPKİ:

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 

Bu gerçek URL'sini açılış çok daha hızlı olduğunu ve gerçekten yönlendirilen URL'yi getirmek istemiyoruz. Ayrıca minik uşak servisi ile de güzel oynuyor.

Yakut içinde herhangi bir HTTP veya curl API'sine bakın. Oldukça kolay olmalı. http://code.google.com/p/python-bitly/

Yani Ruby için benzer bir şey olmalı:

+0

Ve açık olmak gerekirse, bu herhangi bir yönlendirmenin yerini bulmak için etkili bir yöntemdir. –

+5

Belirli bir konumun başlığını da kontrol etmek isteyebilirsiniz, böylece bir yönlendirme zincirini takip edebilirsiniz. – rampion

11

Burada mevcut Python bitly API için büyük bir sarıcı var başlıklarını

#!/usr/bin/env ruby 

require 'rubygems' 
require 'httpclient' 

client = HTTPClient.new 

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

Son üç satırı tek bir noktaya yoğunlaştırmak benim için faydalı: 'longUrl = HTTPClient.new.head (" http://bit.ly/GFscreener12 ") .header ['Location'] [0]' – Marcos

2

almak için httpclient rubygem kullanabilirsiniz.

İlgili konular