2

Cookie を使用しようとしてLWP::UserAgentいますが、テキスト ファイルに保存されません。私は何を間違っていますか?

use v5.16;
use strict;
use warnings;
use Data::Dumper;

use LWP::UserAgent;
use HTTP::Cookies;
use Net::SSL ();

my $cookie_jar = HTTP::Cookies->new( 
    file => 'lwp_cookies.txt',
    autosave => 1,
);

my $ua = LWP::UserAgent->new(
    ssl_opts   => { verify_hostname => 0 },
    cookie_jar => $cookie_jar,
);

my $auth_url = 'https://my.site.url/path/authenticate';
use HTTP::Request::Common qw(GET);
my $req = HTTP::Request->new(GET => $auth_url);
$req->authorization_basic('username', 'password');

$ua->request($req);
say Dumper( \$cookie_jar );

ダンプされたデータは次のようになります。

$VAR1 = \bless( {
   'autosave' => 1,
   'COOKIES' => {
          'my.site.url' => {
                '/' => {
                     'BLAH_COOKIE_KEY' => [
                         0,
                         'very_long_string',
                         undef,
                         1,
                         undef,
                         undef,
                         1
                       ]
                   }
              }
        },
   'file' => 'lwp_cookies.txt'
 }, 'HTTP::Cookies' );

そしてlwp_cookies.txt、これがあります:

#LWP-Cookies-1.0

私は Strawberry Perl で Win を使用しています。

4

1 に答える 1

9

次を発行してみてください:

$cookie_jar->save

また、Cookieの有効期限が切れているか、破棄が要求されている可能性があるため、1に設定してを作成$cookie_jarignore_discardます。

my $cookie_jar = HTTP::Cookies->new( 
    file => 'lwp_cookies.txt',
    autosave => 1,
    ignore_discard => 1,
);
于 2013-03-11T14:12:06.810 に答える