我尝试这段代码,但是当代理太慢时,我得到连接超时错误。我怎么解决这个问题?我尝试过异常处理,但不起作用。有人可以帮忙吗?
Net::HTTP.new('example.com', nil, '140.113.182.81', '808').start { |http|
begin
response = http.request
p response
rescue Timeout::Error
p 'timed out'
end
}
答案 0 :(得分:1)
Timeout :: Error由Net::HTTP.connect
执行的start
方法引发,而不是由request
执行。
这意味着为了挽救超时,整个Net::HTTP
调用应该在开始块内。
begin
Net::HTTP.new('example.com', nil, '140.113.182.81', '808').start do |http|
response = http.request
p response
end
rescue Timeout::Error
p 'timed out'
end