Perl WWW :: Mechanize将cookie存储到字符串中

时间:2014-08-17 08:26:58

标签: perl http cookies

我想从我的脚本处理多个登录,所以我试图将WWW::Mechanize中的实际cookie保存在一个值(按预期工作),并在以后再次使用它们,这些都不起作用,继承我的代码:

use WWW::Mechanize;
$agent = WWW::Mechanize->new( cookie_jar => {} );
$agent->get('https://example.com/');

#save cookies to string
$cookies =  $agent->cookie_jar->as_string;
#clearing cookies
$agent->cookie_jar->clear;

#re-using the cookies (this wont work)
$agent->cookie_jar->load($cookies);

有什么想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

来自HTTP::Cookies的文档:

   $cookie_jar->load
   $cookie_jar->load( $file )
       This method reads the cookies from the file and adds them to the $cookie_jar.  The file must be in the format written by the save() method.

您正在使用带字符串的加载而不是文件。 因为as_string没有反向方法,所以你必须保存和加载,而不是as_string和load。 您可以尝试仅使用多个cookie罐,例如

$old_cookies = $agent->cookie_jar;
$agent->cookie_jar({}); # new cookie jar
...
$agent->cookie_jar($old_cookies); # switch back to old cookie jar