2014-11-03 74 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