繁体   English   中英

在Ruby中使用超时发出HTTP HEAD请求

[英]Making HTTP HEAD request with timeout in Ruby

在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM