aNoble
aNoble

Reputation: 7072

Ruby throws Timeout::Error when calling Net::HTTP.get on an HTTPS URL

I've tried this on a few machines on different networks, all running ruby 1.8.7 and I get the same result after a long wait.

Net::HTTP.get(URI.parse('https://encrypted.google.com/'))
  Timeout::Error: execution expired

but HTTP works fine

Net::HTTP.get(URI.parse('http://www.google.com/'))

After the inital timeout I get an EOFError instead

  EOFError: end of file reached

It's really got me stumped. If you have any ideas or you can let me know if you get the same results I'd really appreciate it.

Upvotes: 2

Views: 2158

Answers (1)

Brian
Brian

Reputation: 6840

I think you need to set use_ssl to true...

example:

uri = URI.parse("https://www.google.com/")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri.request_uri)

response = http.request(request)

puts response.body

This is cannibalized from the following Ruby Inside post.

Upvotes: 4

Related Questions