I'm using Ruby 1.9.3 and need to GET a URL. I have this working with Net::HTTP
, however, if the site is down, Net::HTTP
ends up hanging.
While searching the internet, I've seen many people faced similar problems, all with hacky solutions. However, many of those posts are quite old.
Requirements:
- I'd prefer using
Net::HTTP
to installing a new gem. - I need both the Body and the Response Code. (e.g. 200)
- I do not want to
require open-uri
, since that makes global changes and raises some security issues. - I need to GET a URL within X seconds, or return error.
Using Ruby 1.9.3, how can I GET a URL while setting a timeout?
To clarify, my existing code looks like:
Net::HTTP.get_response(URI.parse(url))
Trying to add:
Net::HTTP.open_timeout(1000)
Results in:
NoMethodError: undefined method `open_timeout' for Net::HTTP:Class