Mojo::UserAgent::CookieJar - HTTPユーザーエージェントのためのクッキーの入れ物
使い方
use Mojo::UserAgent::CookieJar; # レスポンスクッキーを追加 my $jar = Mojo::UserAgent::CookieJar->new; $jar->add( Mojo::Cookie::Response->new( name => 'foo', value => 'bar', domain => 'localhost', path => '/test' ) ); # リクエストクッキーを見つける for my $cookie ($jar->find(Mojo::URL->new('http://localhost/test'))) { say $cookie->name; say $cookie->value; }
説明
Mojo::UserAgent::CookieJarはRFC 6265で定義されている HTTPユーザーエージェントのための最小限で緩やかなのクッキーの入れ物です。
属性
Mojo::UserAgent::CookieJarは次の属性を実装しています。
ignore
my $ignore = $jar->ignore; $jar = $jar->ignore(sub {...});
クッキーが"collect"によって無視されるべきかを決定するのに利用されるコールバック。
# すべてのクッキーを無視 $jar->ignore(sub { 1 }); # "com", "net" と "org" のドメインを無視 $jar->ignore(sub { my $cookie = shift; return undef unless my $domain = $cookie->domain; return $domain eq 'com' || $domain eq 'net' || $domain eq 'org'; });
max_cookie_size
my $max_cookie_size = $jar->max_cookie_size; $jar = $jar->max_cookie_size(4096);
クッキージャーの最大のバイトサイズ。デフォルトは、4096
(4KB)。
メソッド
Mojo::UserAgent::CookieJarはMojo::Baseのすべてのメソッドを継承しており、 次の新しいメソッドを実装しています。
add
$jar = $jar->add(@cookies);
複数のMojo::Cookie::Responseオブジェクトを入れ物に追加します。
all
my $cookies = $jar->all;
入れ物に現在保存されているすべてのMojo::Cookie::Responseオブジェクトを返却します。
# すべてのクッキーの名前 say $_->name for @{$jar->all};
collect
$jar->collect(Mojo::Transaction::HTTP->new);
トランザクションからレスポンスクッキーを収集します。
empty
$jar->empty;
入れ物を空にします。
find
my $cookies = $jar->find(Mojo::URL->new);
入れ物の中からMojo::URLオブジェクトに対応するMojo::Cookie::Requestオブジェクトを探します。
# すべての発見されたクッキーの名前 say $_->name for @{$jar->find(Mojo::URL->new('http://example.com/foo'))};
prepare
$jar->prepare(Mojo::Transaction::HTTP->new);
トランザクションのために、リクエストクッキーを準備します。
参考
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
(Mojolicious 8.12を反映。2019年5月30日更新)