[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

http.get call works, but then fails when using debugger

Jeff Jortner

11/3/2006 7:26:00 PM

Hi,
Can someone tell me if I have found a bug or am doing something wrong
using Net::HTTP.get ? If I run the code without the -rdebug flag, then
it works perfectly. If I use the flag and then simply do a continue,
then I get the errors shown after the code below. I have stepped
through the code and shown that it is the get2 call that causes the
error. Also happens with the get method.

I/m running Ruby version 1.8.5 on both Mac (PowerPC) and Redhat
Enterprise Linux. Same result on both.

Jeff

#!/usr/bin/ruby

require 'net/http'

SITE = "http://campus.acm...
PATH = '/Public/fmr/'
USERAGENT = ' Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en)
AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3'
http = Net::HTTP.new('campus.acm.org',80)
puts " "
puts "First Get"
headers = {
'Content-type' => 'application/x-www-form-urlencoded',
'User-Agent' => USERAGENT,
'Keep-Alive' => '300',
'Connection' => 'keep-alive'
}

resp, data = http.get2(PATH, headers)
puts 'Code= ' + resp.code

---------------
spartan[293]ruby -rdebug jtest1.rb
Debug.rb
Emacs support available.

jtest1.rb:3:require 'net/http'
(rdb:1) c

First Get
/usr/local/lib/ruby/1.8/net/protocol.rb:133: `end of file reached'
(EOFError)
from /usr/local/lib/ruby/1.8/timeout.rb:76:in `timeout'
from /usr/local/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
from /usr/local/lib/ruby/1.8/net/protocol.rb:104:in `read_all'
from /usr/local/lib/ruby/1.8/net/http.rb:2217:in `read_body_0'
from /usr/local/lib/ruby/1.8/net/http.rb:2170:in `read_body'
from /usr/local/lib/ruby/1.8/net/http.rb:2195:in `body'
from /usr/local/lib/ruby/1.8/net/http.rb:2134:in `reading_body'
from /usr/local/lib/ruby/1.8/net/http.rb:1049:in `request'
from /usr/local/lib/ruby/1.8/net/http.rb:1034:in `request'
from /usr/local/lib/ruby/1.8/net/http.rb:543:in `start'
from /usr/local/lib/ruby/1.8/net/http.rb:1032:in `request'
from /usr/local/lib/ruby/1.8/net/http.rb:945:in `get2'
from jtest1.rb:17
/usr/local/lib/ruby/1.8/net/protocol.rb:133: @rbuf <<
@io.sysread(1024)

--
Posted via http://www.ruby-....

1 Answer

Jano Svitok

11/3/2006 9:01:00 PM

0

On 11/3/06, Jeff Jortner <jnjortn@sandia.gov> wrote:
> Hi,
> Can someone tell me if I have found a bug or am doing something wrong
> using Net::HTTP.get ? If I run the code without the -rdebug flag, then
> it works perfectly. If I use the flag and then simply do a continue,
> then I get the errors shown after the code below. I have stepped
> through the code and shown that it is the get2 call that causes the
> error. Also happens with the get method.
>
> I/m running Ruby version 1.8.5 on both Mac (PowerPC) and Redhat
> Enterprise Linux. Same result on both.
>
> Jeff
>
> #!/usr/bin/ruby
>
> require 'net/http'
>
> SITE = "http://campus.acm...
> PATH = '/Public/fmr/'
> USERAGENT = ' Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en)
> AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3'
> http = Net::HTTP.new('campus.acm.org',80)
> puts " "
> puts "First Get"
> headers = {
> 'Content-type' => 'application/x-www-form-urlencoded',
> 'User-Agent' => USERAGENT,
> 'Keep-Alive' => '300',
> 'Connection' => 'keep-alive'
> }
>
> resp, data = http.get2(PATH, headers)
> puts 'Code= ' + resp.code
>
> ---------------
> spartan[293]ruby -rdebug jtest1.rb
> Debug.rb
> Emacs support available.
>
> jtest1.rb:3:require 'net/http'
> (rdb:1) c
>
> First Get
> /usr/local/lib/ruby/1.8/net/protocol.rb:133: `end of file reached'
> (EOFError)
> from /usr/local/lib/ruby/1.8/timeout.rb:76:in `timeout'
> from /usr/local/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
> from /usr/local/lib/ruby/1.8/net/protocol.rb:104:in `read_all'
> from /usr/local/lib/ruby/1.8/net/http.rb:2217:in `read_body_0'
> from /usr/local/lib/ruby/1.8/net/http.rb:2170:in `read_body'
> from /usr/local/lib/ruby/1.8/net/http.rb:2195:in `body'
> from /usr/local/lib/ruby/1.8/net/http.rb:2134:in `reading_body'
> from /usr/local/lib/ruby/1.8/net/http.rb:1049:in `request'
> from /usr/local/lib/ruby/1.8/net/http.rb:1034:in `request'
> from /usr/local/lib/ruby/1.8/net/http.rb:543:in `start'
> from /usr/local/lib/ruby/1.8/net/http.rb:1032:in `request'
> from /usr/local/lib/ruby/1.8/net/http.rb:945:in `get2'
> from jtest1.rb:17
> /usr/local/lib/ruby/1.8/net/protocol.rb:133: @rbuf <<
> @io.sysread(1024)

This is probably normal behaviour. Run your script with -w or -d
switch and you'll see all exceptions. The debugger stops on all
excetions even if they are caught.