如何使用Perl发送带有cookie的HTTP请求?
我是Perl新手,我想编写一个Perl程序:如何使用Perl发送带有cookie的HTTP请求?,perl,Perl,我是Perl新手,我想编写一个Perl程序: 创建HTTP请求 将其发送到任何URL(例如) 在请求中包含cookie 将http响应代码记录在文件中 我试过这个: #!/usr/bin/perl require HTTP::Request; require LWP::UserAgent; $request = HTTP::Request->new(GET => 'http://www.google.com/'); $ua = LWP::UserAgent->ne
- 创建HTTP请求
- 将其发送到任何URL(例如)
- 在请求中包含cookie
- 将http响应代码记录在文件中
#!/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;
}
请告知如何在“请求”ie中设置cookie
如何在发送HTTP::Request时设置cookie
我期待着这样的事情:
$request = HTTP::Request->new(GET => 'http://www.google.com/');
$ua = LWP::UserAgent->new;
$ua->new CGI::Cookie(-name=>"myCookie",-value=>"fghij");
这是可能的吗?从和开始,正如HTTP::cookies中提到的cookies:
- 你需要创建一个饼干罐
- 设置要放入罐子中的cookies的值
- 然后将该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\u cookie
有大量参数:
设置cookie($version、$key、$val、$path、$domain、$port、,
$path\u spec、$secure、$maxage、$discard、\%rest)
这是因为CookieJAR是从浏览器(用户代理)的角度设计的,而不是从单个请求的角度设计的。这意味着在这种情况下并非所有的论点都如此重要
需要正确处理的是$key、$val、$path、$domain、$port
关于:
500无法连接到www.google.com:80
(错误的主机名“www.google.com”)
这意味着LWP无法为Google查找地址。您是否支持web代理?如果是这样,您也需要在UA中使用以下方法设置代理:
$request = HTTP::Request->new(GET => 'http://www.google.com/');
$ua = LWP::UserAgent->new;
$ua->new CGI::Cookie(-name=>"myCookie",-value=>"fghij");
$ua->proxy(['http','https'],'') 你自己试过吗?你被什么卡住了?我也不确定Putty/finesse与您的问题有什么关系。Cookies存储在客户端。也许你想发送cookie值,但不想发送cookie本身。+1
请告诉我如何在“请求”中设置cookie
是一条我以前从未见过的错误消息——甚至在Perl中也没有:)@Jørn Schou Rode:oops!忘了添加“错误消息”他们的..无论如何都解决了问题已编辑。LWP::UserAgent显示HTTP响应我想要带有set Cookie的简单HTTP请求您希望如何在不查看响应的情况下记录状态代码?我不知道,无论如何,谢谢。。。那么“将http响应代码记录到一个文件中”呢@dexter:简单的方法是:打开一个文件并将响应代码打印到其中。强大的方法:使用Log4perl()。使用David的链接编辑,$cookies->set_cookie(0、'cookiename'、'value'、'/'、'google.com',80,0,086400,0);你能详细解释一下吗?在set_cookie上增加了详细信息-更多信息请查看HTTP::cookie手册页或维基百科的HTTP cookie页。