3

テスト用に 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:セッションIDが適切に処理されているため、Cookieがユーザーエージェントに確実に取り込まれていることにも言及する必要があります。残念ながら、私は (サイトをテストするために) 別の Cookie にアクセスする必要があり、それらにアクセスするための適切な呪文を取得できないようです... これはプログラマーの問題であり、それ以上のものではないと信じています.

4

1 に答える 1

2

これを使って:

$tx->res->cookies
于 2012-06-20T13:12:14.390 に答える