![](/img/trans.png)
[英]How can I send an incorrect Content-Length header for an HTTP request using Perl?
[英]How can I use Perl to send and HTTP request with a cookie?
我是Perl的新手,我想编写一个Perl程序:
我试过这个:
#!/usr/bin/perl
require HTTP::Request;
require LWP::UserAgent;
$request = HTTP::Request->new(GET => 'http://www.google.com/');
$ua = LWP::UserAgent->new;
$ua->cookie_jar({file => "testcookies.txt",autosave =>1});
$response = $ua->request($request);
if($response->is_success){
print "sucess\n";
print $response->code;
}
else {
print "fail\n";
die $response->code;
}
请告诉我们如何在'request'中设置cookie即ie
我们发送HTTP :: Request时如何设置cookie
我期待的是:
$request = HTTP::Request->new(GET => 'http://www.google.com/');
$ua = LWP::UserAgent->new;
$ua->new CGI::Cookie(-name=>"myCookie",-value=>"fghij");
这可能吗??
如上所述,cookie在HTTP :: Cookies中:
你需要创建一个cookie罐
您可以设置要放入jar中的cookie的值
然后,将该jar与您的用户代理关联
例如:
my $ua = LWP::UserAgent->new;
my $cookies = HTTP::Cookies->new();
$cookies->set_cookie(0,'cookiename', 'value','/','google.com',80,0,0,86400,0);
$ua->cookie_jar($cookies);
# Now make your request
set_cookie
有相当多的参数:
set_cookie($ version,$ key,$ val,$ path,$ domain,$ port,$ path_spec,$ secure,$ maxage,$ discard,\\%rest)
这是因为cookie jar是从浏览器(UserAgent)的角度设计的,而不是单个请求。 这意味着在这种情况下并非所有参数都如此重要。
你需要得到的是$ key,$ val,$ path,$ domain,$ port。
关于:
500无法连接到www.google.com:80(错误的主机名'www.google.com')
这意味着LWP无法查找Google的地址。 你是一个Web代理的背后? 如果是这样,您将需要使用以下内容在UA中设置代理:
$ ua-> proxy(['http','https'],' http://proxyhost.my.domain.com:8080 / ');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.