Forum: Ruby Net::HTTP Logging in / Persistent sessions problem

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Sy Y. (Guest)
on 2007-05-30 06:25
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!
Enrique Comba R. (Guest)
on 2007-05-30 12:32
(Received via mailing list)
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
Sy Y. (Guest)
on 2007-05-31 03:12
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?
Aaron P. (Guest)
on 2007-05-31 03:12
(Received via mailing list)
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/
Sy Y. (Guest)
on 2007-05-31 03:14
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?
This topic is locked and can not be replied to.