http://qs1969.pair.com?node_id=292423


in reply to Net_SSLeay help?

I am guessing that your user agent needs cookies. If it's a standard LWP::UserAgent, you can set $browser->cookie_jar({}); and go from there.

Replies are listed 'Best First'.
Re: Re: Net_SSLeay help?
by booter (Novice) on Sep 18, 2003 at 17:01 UTC
    Clearly I don't understand how Net_SSLeay works. I know that LWP::UserAgent requires cookies to be set, and I would have used the LWP library had it worked properly with https, but it doesn't. So I resorted to using Net_SSLeay (Crypt also gave me some problems).

    So, with that in the open, are you saying that I can still use the LWP cookies with Net_SSLeay?

      The following is an example of some code that uses LWP to post some data to an HTTPS login page and collect the cookies in a temporary HTTP::Cookie jar. You can persist the cookies for future use by giving the cookie jar a file to use.

      You will need to change the $loginFormUrl and form data in order to get this to work with your login page.

      Inman

      #! /usr/bin/perl -w
      
      use strict;
      use warnings;
      
      use LWP::UserAgent;
      use HTTP::Cookies;
      use HTTP::Request;
      use IO::Socket::SSL;
      
      my $loginFormUrl = "https://webbroker33w.tdwaterhouse.ca/LogOn";
      
      # Join the list of name=value pairs that you get from your login page
      my $postContent = join "&", qw (
      userid=myUser
      passwd=myPassword
      );
      
      # Create User Agent
      my $ua = LWP::UserAgent->new();
      
      # Set up the cookie jar to use the file 'cookies.txt'
      $ua->cookie_jar (HTTP::Cookies->new ());
      push @{ $ua->requests_redirectable }, 'POST';
      
      my $req = HTTP::Request->new("POST", $loginFormUrl );
      $req->content_type('application/x-www-form-urlencoded');
      $req->content($postContent);
      
      # Send the request to the server
      my $resp = $ua->request( $req );
      
      if ( $resp->is_error() ) {
      	print "warning Error requesting URL ->" . $resp->message();}
      else{
      	print $resp->headers_as_string . "\n";}