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

10,843

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
Share:
10,843
skozz
Author by

skozz

Updated on June 11, 2022

Comments

  • skozz
    skozz almost 2 years

    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?