[英]Perl LWP: Send Cookie by HTTP header not work
我知道,如果您想使用Cookie,則必須將代碼編寫為:
$ua = LWP::UserAgent->new();
$ua->cookie_jar(HTTP::Cookies->new());
那么您可以get(),post()等。
但是,如果僅將cookie字符串放入HTTP HEADER和get()中,則無法獲得正確的響應。 如:
$ua = LWP::UserAgent->new();
$ua->get($url, 'Cookie' => $cookie_string);
我認為您會發現使用該方法可以正確設置Cookie
標頭。
為了確保您可以寫
my $resp = $ua->get('http://www.myurl.com', Cookie => 'my=data');
print $resp->request->as_string;
並且您應該看到該請求包含以下行
Cookie: my=data
從文檔看來, $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罐和基於文件的cookie罐的示例。
至於為什么HTTP :: Cookie以您的方式調用時不會返回合適的哈希值,我不確定,但事實並非如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.