[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>

14 messages 2000/06/06

[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>

Hi,

12 messages 2000/06/07

[#3222] Ruby coding standard? — Robert Feldt <feldt@...>

16 messages 2000/06/09

[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>

> |I am new to Ruby and this brings up a question I have had

17 messages 2000/06/12
[#3281] Re: BUG or something? — Dave Thomas <Dave@...> 2000/06/12

Aleksi Niemel<aleksi.niemela@cinnober.com> writes:

[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>

> I want to contribute to the ruby project in my spare time.

15 messages 2000/06/12

[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>

I was looking at the Ruby editor/IDE for windows and was disappointed with

19 messages 2000/06/14

[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>

Hi All,

17 messages 2000/06/14

[#3415] Re: Waffling between Python and Ruby — Andrew Hunt <andy@...>

>Static typing..., hmm,...

11 messages 2000/06/14

[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>

32 messages 2000/06/16

[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>

Given that I cannot overload =, how should I go about ensuring a deep

20 messages 2000/06/19

[#3694] Why it's quiet — hal9000@...

We are all busy learning the new language

26 messages 2000/06/29
[#3703] Re: Why it's quiet — "NAKAMURA, Hiroshi" <nahi@...> 2000/06/30

Hi,

[#3705] Re: Why it's quiet — matz@... (Yukihiro Matsumoto) 2000/06/30

Hi,

[ruby-talk:03217] Re: Retrieving the hostname and port in net/http

From: Dave Thomas <Dave@...>
Date: 2000-06-09 11:03:57 UTC
List: ruby-talk #3217
Dave Thomas <Dave@thomases.com> writes:

> Minero Aoki <aamine@dp.u-netsurf.ne.jp> writes:
> 
> > Hi,
> > 
> >   In mail "[ruby-talk:03161] Re: Retrieving the hostname and port in net/http"
> >     Dave Thomas <Dave@thomases.com> wrote:
> > 
> > > One of the problems is that HTTP#get throws an exception on a 301, so
> > > there's no resp structure to interrogate.
> > 
> > Yes, that's right. I agree that "get" method is OUT OF USE for
> > many applications. I want to make "get" not to raise exceptions,
> > but I could not because of backward compatibility.
> > If it is not too rate, I'll change it.
> 
> Either that, or possibly include the header information in the
> exception.

And, just to show how responsive the Ruby developers are, less than 24
hours later, Minero Aoki checks in to the CVS tree a new net/http that 
does just that (and in doing so gives us a reason to use the 'retry'
feature of Ruby exceptions):

     require 'net/http'

     h = Net::HTTP.new(ARGV[0] || 'www.ruby-lang.org', 80)

     url = ARGV[1] || '/'
     
     begin

       puts "Fetching #{url}"
       resp, data = h.get(url, nil)
       puts data

     rescue Net::ProtoRetriableError => detail

       head = detail.data
       if head.code == "301"
         puts "Need to retry"
         url = head['location']
         url =~ %r{^http://([^/]+)(.*)}
         host = $1
         url = $2
         port = 80
         
         if host =~ /(.*):(\d+)/
           host = $1
           post = $2
         end
         
         h.finish
         h = Net::HTTP.new(host, port)

         retry          # Back, Jack, and do it again!
       end
     end


Regards


Dave







In This Thread