On Fri, March 7, 2008 11:16, Andrej Sokurov wrote:
> Thank you to everyone for helping me out.
>
> I might be mistaken, but I have an impression that there are 2 kind of
> authorizations.
>
> 1) It looks like in example below:
>    http://www.buddhism-dict.net/cgi-bin/xpr-dealt.pl
>    There is an example for perl program here:
>
> http://www.rosettacode.org/rosettacode/w/index.php?title=HTTPS_request_with_authentication
>
> 2) When there is a login screen where a user needs to supply
> login/password.
> It's similar to PayPal login screen.
>
> I'm looking solutions for the second type of authorization.
>
> I wrote a program, based on examples received from this post. It doesn't
> work. I tried to login into a regular,
> not https site ... but failed.
>
> I don't have publicly available site and guests login to share with the
> community ... unfortunately.
>
> The task seems straightforward:
> 1. Posting login/password information on proper fields of the form.
> 2. Requesting needed page.
>
> It looks like POST works OK (Block 1).
> In block #2 I'm getting back login screen and saving into file for further
> review. It looks like login/password information
> is correct when I looked source code for this HTML.
>
> Block #3 returns me HTML page but not that I expecting. It returns the
> page
> that normally comes when a user tried to get
> this page directly, without authorization or with invalid session object.
>
> Does anybody have suggestion what I'm doing wrong and how to fix it?
>
> Thank you
>
Check to see if its setting a cookie. You may have to send that back with
your next request. Just a thought.
>
> #---------------------------------------------------------- code start
> use LWP::UserAgent;
> use HTTP::Cookies;
> use HTTP::Request::Common qw(GET POST);
> use strict;
>
>
> my $url='http://a_site/login.jsp';
>
> my $ua = LWP::UserAgent->new();
> $ua->agent('Mozilla/5.0');
>
> my $cookie_jar = HTTP::Cookies->new();
>
> my @fld_val  =();
> my @fld_name =();
>
> $fld_name[0]='user_name';   $fld_val[0]= 'Tom';
> $fld_name[1]='password';    $fld_val[1]= 'pass_for_tom';
>
> my $data = [ $fld_name[0] => $fld_val[0],
>              $fld_name[1] => $fld_val[1]
>        ];
>
>
> #----------------- Block 1 -------------------
> my $response = $ua->request(POST($url, Content => $data ) );
>
> if ($response->is_error )
>   {
>     die "Response ERROR";
>   };
>
> $cookie_jar->extract_cookies($response);
> $cookie_jar->save('cookie_01.txt');
> #-----
>
>
> #----------------- Block 2 -------------------
> # Still login screen
> my $ct = $response->content;
>
> my $file_name='U:\Perl\Data\Misc\log_01.html';
> open(FILE_LOG, ">$file_name") || die"Can not open file $file_name to
> write";
> print FILE_LOG "$ct";
> close(FILE_LOG);
> #---
>
>
> #----------------- Block 3 -------------------
> # Below is a page I need to get
> $url = 'http://a_site/main.jsp';
> my $request = new HTTP::Request GET => $url;
> $response = $ua->request($request);
>
> my $html_page_received='';
> $html_page_received = $response->content;
>
>
> $file_name='U:\Perl\Data\Misc\target_01.html';
> open(FILE_TRG, ">$file_name") || die"Can not open file $file_name to
> write";
> print FILE_TRG "$html_page_received";
> close(FILE_TRG);
> #---------------------------------------------------------- code end
>
>
> On Wed, Mar 5, 2008 at 10:59 AM, Andrej Sokurov <[EMAIL PROTECTED]>
> wrote:
>
>> Hello everyone:
>>
>> I need to write a program that would fetch an HTML page from a secure
>> site
>> that requires authorization.
>> When a human it usually done in following sequence:
>> 1. Get login screen     (https)
>> 2. Supply login/password
>> 3. Get needed HTML page (https)
>> 4. Logout
>>
>> Doing similar thing without required authorization is very simple and
>> straightforward procedure:
>>
>>   my($request) = new HTTP::Request GET => $url;
>>   my($ua) = new LWP::UserAgent;
>>   my($response) = $ua->request($request);
>>   my($html_page_received)=$response->content;
>>
>> However, getting through secure site that requires authorization is not
>> clear for me.
>> Could somebody point me in a right direction? It would be the best, if
>> somebody gives me an example of such program
>>
>> Thank you.
>>
> _______________________________________________
> Perl-Win32-Web mailing list
> [email protected]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>


_______________________________________________
Perl-Win32-Web mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to