2011-01-13 11 views
0

Ich habe ein Problem bekommen/bleiben mit Perl angemeldet zu einer WebseitePerl WWW :: Mechanize jsession Ausgabe

Mit Blick auf dem Header mechanisieren, scheint es, dass die JSESSIONID sich dauernd ändert. Ich benutze eine Keksdose, aber ich denke, es wird irgendwie überschrieben.

#!/usr/bin/perl 
use strict; 
use warnings; 
use WWW::Mechanize; 
use HTTP::Cookies; 
use Crypt::SSLeay; 

use LWP::UserAgent; 
use Crypt::SSLeay::CTX; 
use Crypt::SSLeay::Conn; 
use Crypt::SSLeay::X509; 

use LWP::Simple qw(get); 
use LWP::Debug; 

my $cookie_jar = HTTP::Cookies->new(ignore_discard => 1); 
my $agent = WWW::Mechanize->new(cookie_jar => $cookie_jar, noproxy=>0); 
$agent->agent_alias('Linux Mozilla'); 

$ENV{HTTPS_CA_DIR} = 'cert/'; 

my $user = 'xxxx'; 
my $pass = 'xxxx'; 

my $url = ''; 

print "\n\n=========================================================\nGOING TO LOGIN PAGE:\n"; 
my $res = $agent->get($url); 

for my $key ($res->header_field_names()) { 
    print $key, " : ", $res->header($key), "\n"; 
} 
print "cookie: ".$agent->cookie_jar->as_string(); 
$agent->form_name('loginForm'); 
$agent->set_fields(
    userId => $user, 
    password => $pass 
);  
$agent->submit(); 


print "\n\n=========================================================\nREDIRECT:\n"; 
my $res = $agent->submit(); 

for my $key ($res->header_field_names()) { 
    print $key, " : ", $res->header($key), "\n"; 
} 
print "cookie: ".$agent->cookie_jar->as_string(); 


my $cUrl = ''; 
$cookie_jar->revert; 

print "\n\n=========================================================\nGOING TO CAMPAIGN PAGE:\n"; 
my $res = $agent->get($cUrl); 

for my $key ($res->header_field_names()) { 
    print $key, " : ", $res->header($key), "\n"; 
} 
print "cookie: ".$agent->cookie_jar->as_string(); 

Antwort

0

Ich bin nicht sicher, warum dies funktioniert, aber ich war in der Lage, dies zu lösen, indem LWP Verwendung :: ConnCache

$agent->conn_cache(LWP::ConnCache->new());