簡體   English   中英

Perl LWP:通過HTTP標頭發送Cookie不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM