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日更新)
Mojoliciousドキュメント日本語訳