perl - HTTP::Cookies 到 Mojo::UserAgent::CookieJar
问题描述
我有$cookie_jar
使用HTTP::Cookies创建的:
$cookie_jar = HTTP::Cookies->new(
file => "my$path/my_cookies.dat",
autosave => 1,
);
我想$cookie_jar
使用Mojo::UserAgent使用它,但没有找到选项,我看到的唯一选项是解析原始字符串:
my $cookies = $cookie->parse($str);
解决方案
我上传了一个新版本的HTTP::Cookies::Mozilla,它包含一个解决这个问题的示例程序。
加载您的数据,然后通过回调
HTTP::Cookie
调用将其转换为您喜欢的任何格式:scan
$cookie_jar = HTTP::Cookies->new(
file => "my$path/my_cookies.dat",
autosave => 1,
);
$cookie_jar->scan( \&callback )
在该回调中,将其转换为Mojo::Cookie::Response
对象:
{
my $jar = Mojo::UserAgent::CookieJar->new
# access the scoped variable after you've run all the callbacks.
sub jar { $jar }
sub callback {
my( $version, $key, $val, $path, $domain, $port,
$path_spec, $secure, $expires, $discard, $hash ) = @_;
my $cookie = Mojo::Cookie::Response->new;
...fill in data...
$jar->add( $mojo_cookie);
)
}
或者,编写一个子类,以HTTP::Cookies
这种方式读取您的格式,HTTP::Cookies
但改为填充 a Mojo::CookieJar
。这并不难(我已经写了几篇这样的东西,其中一些在 CPAN 上)。
HTTP::Cookies
还有as_string
一种方法可以制作一个多行字符串,每个字符串一个 cookie。您可以使用这些行来Mojo::Cookie
重新解析它们,但这对我来说并不那么吸引人。
推荐阅读
- java - 如何使用子实体-Spring数据JPA检索父实体
- .net - 将 BBcode 转换为 Json 或 xml
- azure - 如何从 Azure 文件共享中删除所有文件?
- excel - 尝试从多个 URL 导入数据但始终停留在第一个 URL
- javascript - 将数据从 ag-Grid 传递到另一个接口
- c# - ASP.NET Core 在 Program.cs 和 Startup.cs 中捕获并显示错误
- database - 如何打开 DataFlex 2.3b .dat 文件
- python - 如何在应用程序启动的同时调用 python 后台作业
- javascript - 从javascript中动态创建的行中提取数据
- reactjs - react-i18next 出现错误尝试导入错误