Mit Ruby, wie konvertiere ich die kurzen URLs (tinyURL, bitly etc) in die entsprechenden langen URLs?Wie bekomme ich eine lange URL von einer kurzen URL?
Antwort
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.
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']
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
Es gibt eine große Wrapper verfügbar hier für die bitly API erhalten: http://code.google.com/p/python-bitly/
Also muss es etwas ähnliches für Ruby sein.
Und um klar zu sein, ist dies eine effektive Methode, um das Ziel einer Weiterleitung zu finden. –
Möglicherweise möchten Sie auch die Kopfzeile eines bestimmten Standorts überprüfen, damit Sie einer Kette von Weiterleitungen folgen können. – rampion