2014-01-05 67 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

相關問題