From: brian.wil.greene@... Date: 2007-06-29T00:20:01+09:00 Subject: Re: Bad file descriptor error using Net::HTTP On Jun 28, 10:57 am, Daniel Berger wrote: > On Jun 28, 8:20 am, brian.wil.gre...@gmail.com wrote: > > > > > I am trying to access a .net page via my ruby app and pass it a couple > > parameters. Every thing I have tried has resulted in this Bad file > > descriptor, I am wondering if it is something wrong with my > > configuration, not the code. Here is the code that is causing > > problems: > > > Net::HTTP.version_1_2 > > Net::HTTP.start('www.url.com', 80) { > > |http| > > response = > > http.post('/DoSomething.aspx', > > 'id=#{params[:id]}&path=#{params[:imagerecord]}', > > { 'Content-Type' => 'application/x-www-form- > > urlencoded' }) > > puts response.body() > > } > > > Here is the error I get: > > > Errno::EBADF (Bad file descriptor - connect(2)): > > c:/ruby/lib/ruby/1.8/net/http.rb:560:in `initialize' > > c:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect' > > c:/ruby/lib/ruby/1.8/timeout.rb:48:in `timeout' > > c:/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout' > > c:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect' > > c:/ruby/lib/ruby/1.8/net/http.rb:553:in `do_start' > > c:/ruby/lib/ruby/1.8/net/http.rb:542:in `start' > > c:/ruby/lib/ruby/1.8/net/http.rb:440:in `start' > > > I am on Windows 2003 serer with Ruby 1.8.4 and Mongrel. Any help would > > be greatly appreciated. > > Line 560 of net/http.rb is this: > > s = timeout(@open_timeout) { TCPSocket.open(conn_address(), > conn_port()) } > > What happens when you run this standalone snippet? > > require 'socket' > require 'timeout' > > s = Timeout.timeout(5){ > TCPSocket.open(url, 80) > > } > > p s > > s.close > > Regards, > > Dan Dan, Thanks. Here is the error I get when executing the above code: Timeout::Error (execution expired): c:/ruby/lib/ruby/1.8/timeout.rb:54:in `open' c:/ruby/lib/ruby/1.8/timeout.rb:56:in `timeout' I know it's a valid URL. The page I am trying to access is sitting on the same box as my rails app.