Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Net::HTTP Cookies / Headers (almost there...)

Reply
Thread Tools

Net::HTTP Cookies / Headers (almost there...)

 
 
Sy Ys
Guest
Posts: n/a
 
      06-07-2007
I'm attempting to login and follow redirects, however, the below script
doesn't seem to do it. I arrive back at the main login page. Am I doing
something obviously wrong? Am I passing bad headers or wrong cookies?
See comments below.

Also, please don't tell me to use Mechanize. I'm trying to improve the
documentation of this library.

Code ------------------
domain = 'login.domain.com'
script = '/login.cfm'
params = 'email=(E-Mail Removed)&password=passw4rd'
Net::HTTP.start(domain,80){|http|
loginRsp = http.post2(script,params)
loginRsp.each {|key, val| puts key + ' = ' + val}
puts "FIRST RESPONSE===========\r"
puts loginRsp['location'] #Seems ok => Login2.domain.com
request = Net::HTTP::Get.new(loginRsp['location'])
headers = {'Cookie' => loginRsp.response['set-cookie']}
firstRsp = http.request(request,headers)
puts "SECOND RESPONSE===========\r"
puts firstRsp['location'] #Might be ok. =>
Login.domain.com
request = Net::HTTP::Get.new(firstRsp['location'])
headers = {'Cookie' => firstRsp.response['set-cookie']}
secondRsp = http.request(request,headers)
puts "THIRD RESPONSE===========\r"
puts secondRsp['location'] #Not right. Should be
home.domain.com but it is simply domain.com.
request = Net::HTTP::Get.new(secondRsp['location'])
headers = {'Cookie' => secondRsp.response['set-cookie']}
thirdRsp = http.request(request,headers)
puts "=======================END\r"
}

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

 
Reply With Quote
 
 
 
 
Aaron Patterson
Guest
Posts: n/a
 
      06-07-2007
On Thu, Jun 07, 2007 at 12:42:45PM +0900, Sy Ys wrote:
> I'm attempting to login and follow redirects, however, the below script
> doesn't seem to do it. I arrive back at the main login page. Am I doing
> something obviously wrong? Am I passing bad headers or wrong cookies?
> See comments below.
>
> Also, please don't tell me to use Mechanize. I'm trying to improve the
> documentation of this library.


Which library?

>
> Code ------------------
> domain = 'login.domain.com'
> script = '/login.cfm'
> params = 'email=(E-Mail Removed)&password=passw4rd'
> Net::HTTP.start(domain,80){|http|
> loginRsp = http.post2(script,params)
> loginRsp.each {|key, val| puts key + ' = ' + val}
> puts "FIRST RESPONSE===========\r"
> puts loginRsp['location'] #Seems ok => Login2.domain.com
> request = Net::HTTP::Get.new(loginRsp['location'])
> headers = {'Cookie' => loginRsp.response['set-cookie']}
> firstRsp = http.request(request,headers)
> puts "SECOND RESPONSE===========\r"
> puts firstRsp['location'] #Might be ok. =>
> Login.domain.com
> request = Net::HTTP::Get.new(firstRsp['location'])
> headers = {'Cookie' => firstRsp.response['set-cookie']}
> secondRsp = http.request(request,headers)
> puts "THIRD RESPONSE===========\r"
> puts secondRsp['location'] #Not right. Should be
> home.domain.com but it is simply domain.com.
> request = Net::HTTP::Get.new(secondRsp['location'])
> headers = {'Cookie' => secondRsp.response['set-cookie']}
> thirdRsp = http.request(request,headers)
> puts "=======================END\r"
> }


There are a couple things wrong. First, you are not parsing the cookie
header. You are not supposed to send back the same data you received.
See RFC 2109, and 2965.

Second, you keep reassigning your headers hash. This means that even if
you were sending back a properly formatted cookie header, you would only
be sending back the last cookie you received! The server could be
trying to set multiple cookies on your client, and expects that all of
those cookies be sent back.

Hope the helps!

--
Aaron Patterson
http://tenderlovemaking.com/

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem with wsgiref.headers.Headers Phil Python 4 01-17-2010 04:47 PM
Give Request.Cookies and Response.Cookies is there any reason to use another method to use cookies? _Who ASP .Net 7 09-18-2008 07:49 PM
Server cannot clear headers after HTTP headers have been sent Ian ASP .Net Security 2 03-20-2007 09:00 AM
cookies in HTTP POST headers Antony HTML 1 02-02-2005 07:17 AM
Reading 'received' headers: Email Headers Parsing dont bother Python 0 03-03-2004 08:18 PM



Advertisments