2009-05-23 18 views

Antwort

14

Ich benutze Ruby nicht, aber die allgemeine Idee ist es, eine HTTP HEAD Anfrage an den Server zu senden, die wiederum eine 301 Antwort (Moved Permanently) mit dem Header Location zurückgibt, der den URI enthält.

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

RESPONSE:

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 

Dies ist viel schneller als die tatsächliche URL zu öffnen, und Sie wollen nicht wirklich die umgeleiteten URL holen. Es spielt auch gut mit dem tinyurl Service.

In HTTP oder curl API in Ruby schauen. Es sollte ziemlich einfach sein.

+0

Und um klar zu sein, ist dies eine effektive Methode, um das Ziel einer Weiterleitung zu finden. –

+5

Möglicherweise möchten Sie auch die Kopfzeile eines bestimmten Standorts überprüfen, damit Sie einer Kette von Weiterleitungen folgen können. – rampion

11

können Sie die Verwendung Httpclient rubygem die Header in Python

#!/usr/bin/env ruby 

require 'rubygems' 
require 'httpclient' 

client = HTTPClient.new 

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

Das Zusammenfassen der letzten drei Zeilen zu einem ist für mich nützlich: 'longUrl = HTTPClient.new.head (" http://bit.ly/GFscreener12 ") .header ['Ort'] [0]' – Marcos

Verwandte Themen