Unable to run the code

Hi

      I am trying to get  a webpage using this code

require ‘net/http’
Net::HTTP.start(‘www.rubyinside.com’) do |http|
req = Net::HTTP::Get.new(‘/test.txt’)
puts http.request(req).body
end

but it is giving error like

c:/apps/ruby/lib/ruby/1.8/net/http.rb:560:in initialize': Bad file descriptor - connect(2) (Errno::EBADF) from c:/apps/ruby/lib/ruby/1.8/net/http.rb:560:in connect’
from c:/apps/ruby/lib/ruby/1.8/timeout.rb:48:in timeout' from c:/apps/ruby/lib/ruby/1.8/timeout.rb:76:in timeout’
from c:/apps/ruby/lib/ruby/1.8/net/http.rb:560:in connect' from c:/apps/ruby/lib/ruby/1.8/net/http.rb:553:in do_start’
from c:/apps/ruby/lib/ruby/1.8/net/http.rb:542:in start' from c:/apps/ruby/lib/ruby/1.8/net/http.rb:440:in start’
from ft.rb:15

what should I do to run the program . please help me out !

                                                    regards
                                                    pradeepta

On Dec 23, 2007, at 10:26 PM, Pradeepta S. wrote:

Hi

     I am trying to get  a webpage using this code

require ‘net/http’
Net::HTTP.start(‘www.rubyinside.com’) do |http|
req = Net::HTTP::Get.new(‘/test.txt’)
puts http.request(req).body
end

req = http.get(‘/test.txt’)

You have to use the http connection to make the GET request.

Steve R. wrote:

On Dec 23, 2007, at 10:26 PM, Pradeepta S. wrote:

Hi

     I am trying to get  a webpage using this code

require ‘net/http’
Net::HTTP.start(‘www.rubyinside.com’) do |http|
req = Net::HTTP::Get.new(‘/test.txt’)
puts http.request(req).body
end

req = http.get(‘/test.txt’)

You have to use the http connection to make the GET request.

Still getting the same errors ,i am using ruby 1.8.4 in windows XP
platform
please help me out !can You please send the full code 2 make a
connection

Thanx for ur reply ,but i just cannot run the code . Do i need ruby
1.8.6 ,or other set ups before running the code , I am using SciTE IDE
.please reply

Pradeepta S. wrote:

platform
please help me out !can You please send the full code 2 make a
connection

It works for me, as written, and I’m using ruby 1.8.6. I believe the API
for net/http changed a little between versions. I don’t remember the
exact change, but try this variation:

require ‘net/http’
Net::HTTP.start(‘www.rubyinside.com’) do |http|
res = http.get(‘/test.txt’)
puts res.body
end

Also try “.get2” instead of “.get”. Good luck.

Pradeepta S. wrote:

Thanx for ur reply ,but i just cannot run the code . Do i need ruby
1.8.6 ,or other set ups before running the code , I am using SciTE IDE
.please reply

If nobody can reply that knows how to do this with ruby-1.8.5, then the
easiest thing would be to upgrade your installation of ruby. I can’t say
for sure (because I’m not running Windows), but the script should work
with no modification in ruby-1.8.6. You should probably use the one
click installer, available at
http://rubyforge.org/frs/download.php/27227/ruby186-26_rc2.exe .

Good luck,
Dan

Pradeepta S. wrote:

but it is giving error like
from ft.rb:15

what should I do to run the program . please help me out !

Do you have a firewall or proxy between your PC and the internet? I
remember that I had a problem like this (years ago). Just a wild guess.

Stefan

Pradeepta S. wrote:

Net::HTTP.start(‘www.rubyinside.com’) do |http|
platform
please help me out !can You please send the full code 2 make a
connection

I’ve run your code on Ruby 1.8.6 on OS X, so this could either be a
net/http issue in 1.8.4, or a Windows issue, or a net/http issue with
Windows. Sorry I can’t verify further.