[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Net::HTTP Logging in / Persistent sessions problem

subsume@gmail.com

5/30/2007 2:25:00 AM

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!

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

4 Answers

Enrique Comba Riepenhausen

5/30/2007 8:32:00 AM

0

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

> 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!

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

Aaron Patterson

5/30/2007 11:11:00 PM

0

On Wed, May 30, 2007 at 11:25:26AM +0900, Sy Ys wrote:
> 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!

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.ruby...


--
Aaron Patterson
http://tenderlovem...

subsume@gmail.com

5/30/2007 11:13:00 PM

0

Enrique Comba Riepenhausen 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?

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

subsume@gmail.com

5/30/2007 11:14:00 PM

0

Aaron Patterson 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.ruby...

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

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