【发布时间】:2019-05-06 23:51:34
【问题描述】:
我想设置一些 cookie 以供以后在 HTTP::Request 中使用。这是我的代码(已经出现问题的最短形式):
#!/usr/bin/perl -w
use strict;
use LWP::UserAgent;
use HTTP::Cookies;
use Data::Dumper; # DEBUG
my $ua = LWP::UserAgent->new;
$ua->agent("test.pl/0.1");
$ua->cookie_jar({ });
$ua->cookie_jar->set_cookie(0, "mykey", "myvalue", "/", "localhost", 80, 0, 0, 365 * 86400, 0);
print "Cookie jar: ", $ua->cookie_jar->as_string, "\n";
#print Dumper($ua->cookie_jar);
print "Cookies for URL: ", Dumper($ua->cookie_jar->get_cookies("http://localhost/"));
输出:
Cookie jar: Set-Cookie3: mykey=myvalue; path="/"; domain=localhost; port=80; expires="2020-05-05 23:40:21Z"; version=0
Cookies for URL: $VAR1 = {};
cookie 似乎已正确添加到 cookie 罐中。但是,当请求适用于我将向其发送请求的域的 cookie 时,它什么也不返回,而是返回预期的 cookie。事实上,在我的完整程序中,当我尝试这样做时,会发送请求,但不会发送 cookie。
我错过了什么?
最后,我想发送一个 HTTPS 请求,而不是 HTTP,所以还请告诉我如何正确设置 cookie。
【问题讨论】: