Set custom timeout in Net::HTTP::Get.new with Rail

2019-04-27 23:53发布

I'm using this code to scraping external html files

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

Works great but with slowed web pages sometimes responds timeout, so I need set a timeout limit per connection. Any idea?

1条回答
看我几分像从前
2楼-- · 2019-04-28 00:40

You need to set the read_timeout attribute.

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
查看更多
登录 后发表回答