Net::HTTP Logging in / Persistent sessions problem


#1

I am able to login to a website at authenticate.domain.com but when I
attempt to visit panel.domain.com it appears the http session has been
lost.

Code:
Net::HTTP.start(‘authenticate.domain.com’,80){|http|
log = http.post(‘script.php’,params)
puts log.body
}

            Net::HTTP.start('panel.domain.com',80){|http|
                    puts http.get('/index.cfm').body
            }

So, what could be the problem? Either the second Net::HTTP.start call is
beginning a new session or the first call is forgetting a vital cookie.
Anyone? Thanks!


#2

On 30 May 2007, at 04:25, Sy Ys wrote:

            Net::HTTP.start('panel.domain.com',80){|http|
                    puts http.get('/index.cfm').body
            }

So, what could be the problem? Either the second Net::HTTP.start
call is
beginning a new session or the first call is forgetting a vital
cookie.
Anyone? Thanks!

In your code you are basically getting the body of the response only.
Session or cookie information should be in the header… Basically in
a Net::HTTPResponse object you have the Net::HTTPHeader mixed in. Try
looking at the both api’s and you’ll see it clearly…

Cheers,

Enrique


#3

Enrique Comba R. wrote:

In your code you are basically getting the body of the response only.
Session or cookie information should be in the header… Basically in
a Net::HTTPResponse object you have the Net::HTTPHeader mixed in. Try
looking at the both api’s and you’ll see it clearly…

Cheers,

Enrique

Ok, great. After doing some studying I understand a bit more now. Thank
you!

I’ve got my script logging in but the session still doesn’t persist. I
auto-follow a few redirects and I end up back where I was (not logged
in).

I did notice Net::HTTP’s get_fields(‘set-cookie’).

Do I need to use set_content_type(‘set-cookie’,@@cookie)? where @@cookie
= get_fields(‘set-cookie’) # of the first login attempt?


#4

Aaron P. wrote:

Net::HTTP doesn’t save your cookies. If you’d like to have your cookies
automatically saved between each request, check out WWW::Mechanize.

http://mechanize.rubyforge.org/

Oh. Then what does get_fields(‘set-cookie’) do?


#5

On Wed, May 30, 2007 at 11:25:26AM +0900, Sy Ys wrote:

            Net::HTTP.start('panel.domain.com',80){|http|
                    puts http.get('/index.cfm').body
            }

So, what could be the problem? Either the second Net::HTTP.start call is
beginning a new session or the first call is forgetting a vital cookie.
Anyone? Thanks!

Net::HTTP doesn’t save your cookies. If you’d like to have your cookies
automatically saved between each request, check out WWW::Mechanize.

http://mechanize.rubyforge.org/