2014-11-03 26 views
0

所以我做這個建立自定義網址驗證器 - 如何從「已移動」網址響應中抓取新網址?

require 'net/http'; 
require 'net/smtp'; 
res = Net::HTTP.get_response(URI.parse("http://www.cifs.dk")); 

res.response.msg告訴我302 - 該網站已經移動。

我該如何得到移動到的完整地址? (http://www.cifs.dk/en)

res.methods向我展示了一堆嘗試但沒有運氣的東西。

我發現的最接近的是

res.response.body,但只是給了我

... </h1>This object may be found <a HREF="/en">here</a> ... 

這將是毫無樂趣可言,試圖拼湊。

回答

1

Location頭是你在找什麼:

response['Location'] 
+0

謝謝你,先生。這給了我「/ en」,而不是整個url.On其他網站,但它給出了整個網址。這是正常的,還是我選擇了一個怪異的網站?作爲一種解決方法,我應該在['Location'中尋找「http」,如果我找不到它,我會觸發對原始URL的追加? – dwilbank 2014-11-03 06:50:35

+0

是的,'/ en'是相對路徑。該位置可能被指定爲完整URI或作爲站點根目錄的相對路徑。 – mudasobwa 2014-11-03 06:52:37