Я не использую Ruby, но общая идея заключается в том, чтобы отправить HTTP-запрос HEAD на сервер, который, в свою очередь, вернет ответ 301 (постоянно перемещенный) с заголовком Location
, который содержит URI.
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.
Посмотрите на любые API HTTP или curl в ruby. Это должно быть довольно легко.