[#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:03153] Re: Retrieving the hostname and port in net/http

From: Dave Thomas <Dave@...>
Date: 2000-06-07 14:54:24 UTC
List: ruby-talk #3153
Roland Jesse <jesse@cs.uni-magdeburg.de> writes:

> # now some magic to retrieve the hostname and port resulting out of (1)
> # store both in newHostName and newPortNr

Well, I don't know if this is the 'official' way, but:

     require 'net/http'

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

     url = ARGV[1] || '/'

     resp, data = h.get2(url, nil) { |a| }

     puts "Initial response: #{resp.code}, #{resp.message}"

     if resp.code == "301"
       location = resp['location']

       location =~ %r{^http://([^/]+)(.*)}

       host = $1
       location = $2
       port = 80

       if host =~ /(.*):(\d+)/
         host = $1
         post = $2
       end

       h = Net::HTTP.new(host, port)

       resp, data = h.get(location, nil)
       puts "Redirect response: #{resp.code}, #{resp.message}"
     end

     puts data


The 'get2' methods (and the corresponding post2 and head2) don't throw 
protocol exceptions, so you can get the information you need. I'm sure 
there are better ways of parsing the returned URL, but this gives you
the idea.

btw, the top of ruby-lang.org is actually a Ruby script, which looks
at the languages your browser accepts and redirects you to either the
English or japanese language sides of the web site.Makes a useful test 
site for this code.


Regards


Dave



In This Thread