从Mojolicious用户代理响应中提取Cookie

时间:2012-06-19 22:36:58

标签: perl user-agent lwp-useragent mojolicious

我开始使用Mojolicious库进行测试,一切正常,直到我尝试从响应中提取cookie。

我尝试了几种变体:

$ua = Mojo::UserAgent->new();
$ua->on( error => sub { my ($ua, $error) = @_; say "This looks bad: $error"; } );
$ua->max_redirects(1)->connect_timeout(10)->request_timeout(20);
$ua->cookie_jar(Mojo::CookieJar->new);

# ... later ...

my $tx  = $ua->get($url);
my $jar = $ua->cookie_jar->extract($tx); # This is undef

但我可以通过LWP :: UserAgent提取cookie。但是,LWP有几个不同的问题,使得该选项目前无法工作。只是为了比较,这里是提取cookie的LWP代码。

my $lwp = LWP::UserAgent->new(cookie_jar => {}, timeout => 20, max_redirect => 1);
push @{ $lwp->requests_redirectable }, 'POST';
my $response = $lwp->get($url);
die $response->status_line unless $response->is_success;
$lwp->cookie_jar->scan(\&ScanCookies);

sub ScanCookies {
   my ($version, $key, $value) = @_;
   say "$key = $value";
}

所以我知道我有$ url等正确。

编辑:我应该提一下,我正在使用草莓5.14

Edit2:我还应该提一下,cookie肯定会进入用户代理,因为会话ID正在得到妥善处理。不幸的是,我需要访问另一个cookie(用于测试网站),我似乎无法获得正确的咒语来访问它们...说我相信这是一个程序员问题,仅此而已

1 个答案:

答案 0 :(得分:1)

使用此:

$tx->res->cookies