在 Rails 应用程序中,我想对资源(用户提供的 URL)发出 HTTP HEAD 请求,以确保它存在。我还想要一个超时,以确保该方法在花费合理的等待时间后失败。实现此目的最直接的方法是什么(如果可能,使用标准库)?
试试这个片段:
require 'net/http'
Net::HTTP.start('www.some_site.com') do |http|
http.open_timeout = 2
http.read_timeout = 2
req = Net::HTTP::Head.new('/')
http.request(req).each { |k, v| puts "#{k}: #{v}" }
end
希望这就是您正在寻找的。
UPDATE
因为有head
看起来像的方法
def head(path, initheader = nil)
request(Head.new(path, initheader))
end
您还可以使用此代码片段:
require 'net/http'
Net::HTTP.start('www.rubyinside.com') do |http|
http.open_timeout = 2
http.read_timeout = 2
http.head('/').each { |k, v| puts "#{k}: #{v}" }
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)