[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: TimeoutError in Net::HTTP get and post

Nathaniel Talbott

9/24/2003 1:34:00 AM

Carl Youngblood [mailto:carl@youngbloods.org] wrote:

> I think the get and post timeout is set to 60 seconds by default. Your
> script would probably work if you increased the waiting time. My script
> only times out every once in a while since it is accessing a real web
> server that usually responds in time.

OK, that was it. Here's a quick server to duplicate the problem:

require 'webrick'

s = WEBrick::HTTPServer::new(:Port => 2000)
s.mount_proc('/'){|req, resp| sleep(20); resp.body = "Hi!"}
trap("INT"){s.stop}
s.start

Here's a client that catches it for me:

require 'net/http'

h = Net::HTTP::new('localhost', 2000)
h.read_timeout = 10
begin
puts "Trying..."
resp = h.post('/', '')
puts "Reply: #{resp.body}"
rescue TimeoutError => e
puts "Error: #{e.inspect}"
end

My suggestion, rather than retrying the post, would be to simply bump up the
timeout using #read_timeout=. Retrying has the danger of continually trying
to get a page that takes 70 seconds to load using a 60 second timeout.

HTH,


Nathaniel

<:((><