[英]how to raise a timeout error manually?
我想测试一个http get请求。 如果超时,则输出一些内容。
begin
url = "#{url}?#{params.to_param}"
Net::HTTP.get_response(URI.parse(url))
rescue Timeout::Error
puts "....."
end
如何手动引发超时错误? 或如何为HTTP请求设置较短的超时编号?
对于http请求,是否应更改默认超时号? 多长时间合适?
基于http://opensourceconnections.com/blog/2008/04/24/adding-timeout-to-nethttp-get_response/
http = Net::HTTP.new(url.host, url.port)
http.read_timeout = 5
http.open_timeout = 5
resp = http.start() {|http|
http.get(url.path)
}
puts resp.kind_of? Net::HTTPResponse
puts resp.code
puts resp.body
设置超时使用:
http = Net::HTTP.new(host_param)
http.read_timeout = 500
您可以设置几种超时类型。 从文档 :
open_timeout
:等待连接打开的秒数。 可以使用任何数字,包括浮点数秒。 如果HTTP对象在这么多秒内无法打开连接,则会引发Net :: OpenTimeout异常。 缺省值为nil。
read_timeout
:等待读取一个块的秒数(通过一次read(2)调用)。 可以使用任何数字,包括浮点数秒。 如果HTTP对象在这么多秒内无法读取数据,则会引发Net :: ReadTimeout异常。 默认值为60秒。
ssl_timeout
:设置SSL超时秒数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.