2011-01-13 2 views
0

я с проблемой получения/автоматического входа с использованием Perl механизировать на сайтPerl WWW :: Mechanize JSESSION вопрос

Глядя на заголовки, оказывается, что JSESSIONID постоянно меняется. Я использую кувшин для печенья, но я думаю, что он каким-то образом перезаписывается.

#!/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(); 

ответ

0

Я не знаю, почему это работает, но я был в состоянии решить эту проблему за счет использования LWP :: ConnCache

$agent->conn_cache(LWP::ConnCache->new()); 
Смежные вопросы