如何使用LWP

时间:2019-05-06 23:51:35

标签: perl cookies lwp

我想设置一些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。

1 个答案:

答案 0 :(得分:1)

如果将“ localhost”替换为“ example.com”,则会得到想要的结果。域名必须至少包含一个点。