Utilizzando Ruby, come posso convertire gli URL brevi (tinyURL, bitly ecc.) Negli URL lunghi corrispondenti?Come ottenere un URL lungo dall'URL breve?
risposta
Non uso Ruby ma l'idea generale è di inviare una richiesta HEAD HTTP al server che a sua volta restituirà una risposta 301 (spostata in modo permanente) con l'intestazione Location
che contiene l'URI.
HEAD /5b2su2 HTTP/1.1
Host: tinyurl.com
Accept: */*
RISPOSTA:
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
Questo è molto più veloce che aprire l'URL reale e non si vuole veramente per andare a prendere l'URL di reindirizzamento. Gioca anche bene con il servizio tinyurl.
Cerca in qualsiasi API HTTP o curl all'interno di ruby. Dovrebbe essere abbastanza facile.
è possibile utilizzare il httpclient rubygem per ottenere le intestazioni
#!/usr/bin/env ruby
require 'rubygems'
require 'httpclient'
client = HTTPClient.new
result = client.head(ARGV[0])
puts result.header['Location']
Quindi per me è utile condensare le ultime tre righe: 'longUrl = HTTPClient.new.head (" http://bit.ly/GFscreener12 ") .header ['Posizione'] [0]' – Marcos
C'è una grande wrapper per le API bitly in Python disponibile qui: http://code.google.com/p/python-bitly/
Quindi ci deve essere qualcosa di simile per Ruby.
E per essere chiari, questo è un metodo efficace per trovare la destinazione di qualsiasi reindirizzamento. –
Puoi anche controllare l'intestazione di qualsiasi posizione specifica, in modo da poter seguire una catena di reindirizzamenti. – rampion