如何在使用Ruby重定向之后获得最终URL?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

如果http://foo.com重定向到1.2.3.4重定向到的位置http://finalurl.com,我如何使用Ruby来查找URL“http://finalurl.com”?

提问于
用户回答回答于

这里有两种方法,使用HTTPClientOpen-URI:

require 'httpclient'
require 'open-uri'

URL = 'http://www.example.org'

httpc = HTTPClient.new
resp = httpc.get(URL)
puts resp.header['Location']
>> http://www.example1.org/domains/example/

open(URL) do |resp|
  puts resp.base_uri.to_s
end
>> http://www.example1.org/domains/example/
用户回答回答于

使用curb:

def get_redirected_url(your_url)
  result = Curl::Easy.perform(your_url) do |curl|
    curl.follow_location = true
  end
  result.last_effective_url
end 

扫码关注云+社区