2014-01-05 120 views
6

我使用此代码刮外部HTML文件设置自定义超时使用Rails

link = URI.parse(url) 
request = Net::HTTP::Get.new(link.path) 
response = Net::HTTP.start(link.host, link.port) {|http| 
    http.request(request) 
} 

伟大工程但放缓的网页有时候响应超时,所以我需要设置每个连接的超时限制。任何想法?

+0

[如何在Ruby 2中指定Net :: HTTP :: Post.new请求的读取超时值](http://stackoverflow.com/questions/19547184/how-to-specify -a-read-timeout-for-a-nethttppost -new-request-in-ruby-2)获得和发布 –

回答

11

您需要设置read_timeout属性。

link = URI.parse(url) 
request = Net::HTTP::Get.new(link.path) 
begin 
    response = Net::HTTP.start(link.host, link.port) {|http| 
    http.read_timeout = 100 #Default is 60 seconds 
    http.request(request) 
    } 
rescue Net::ReadTimeout => e 
    puts e.message 
end 
+0

Works!,完美但现在我需要一个响应来返回'false'或'true'delends超时的回应。像'如果响应=没有响应,然后返回false'你知道吗? – skozz

+1

您需要处理超时异常。我已做出更改以处理超时情况下的异常。 – Akarsh

+0

如果您认为答案足够令人满意,请记得勾选正确的答案:)。 – Akarsh

相关问题