我知道如果你想使用cookie,你必须编写代码:
$ua = LWP::UserAgent->new();
$ua->cookie_jar(HTTP::Cookies->new());
然后你可以得到(),post()等等。
但是,如果我只是将cookie字符串放入HTTP HEADER和get(),我就无法得到正确的响应。为:
$ua = LWP::UserAgent->new();
$ua->get($url, 'Cookie' => $cookie_string);
答案 0 :(得分:2)
我想您会发现使用该方法正确设置了Cookie
标头。
为了确保,你可以写
my $resp = $ua->get('http://www.myurl.com', Cookie => 'my=data');
print $resp->request->as_string;
你应该看到请求包含行
Cookie: my=data
答案 1 :(得分:-1)
从文档中,看起来$ua->cookie_jar()
需要哈希,要么指定选项,要么提供数据结构来存储cookie。我会尝试
$ua->cookie_jar({});
另外,请注意,您尝试使用的方法只会将Cookie存储在内存中,因此一旦您的脚本结束,您对所述Cookie的了解也会如此。你可能想看看
http://metacpan.org/pod/HTTP::Cookies
http://www.perl.com/pub/2002/08/20/perlandlwp.html
有关内存中cookie jar和基于文件的jar文件的示例。
至于为什么HTTP :: Cookie在调用它们的时候不会返回合适的哈希值,我不确定但它看起来不是。