如何在PERL中使用表单数据设置HTTP::请求的内容
我想通过http post方法发送表单数据。因此,我想用适当的数据设置一个如何在PERL中使用表单数据设置HTTP::请求的内容,perl,http,post,Perl,Http,Post,我想通过http post方法发送表单数据。因此,我想用适当的数据设置一个HTTP::Request,但我不知道如何做到这一点。我想做这样的事情 use strict; use warnings; use 5.010; use LWP::UserAgent; use HTTP::Headers; use HTTP::Request; my $browser = LWP::UserAgent->new(); my $header = HTTP::Headers->new(); my
HTTP::Request
,但我不知道如何做到这一点。我想做这样的事情
use strict;
use warnings;
use 5.010;
use LWP::UserAgent;
use HTTP::Headers;
use HTTP::Request;
my $browser = LWP::UserAgent->new();
my $header = HTTP::Headers->new();
my $data;
# What I have to do here to initialize $header and $data
# with name=Pete and age=35 for example
my $request = HTTP::Request->new( POST, "http://www.example.com", $header, $data );
my $response = $browser->request( $request );
say $response->as_string();
exit;
我还没有找到任何使用HTTP::Request的完整示例。使用LWP::Simple是不可能的。您可以向
LWP::UserAgent
对象的post
方法提供表单值。从:
$ua->post($url,\%form)
$ua->post($url,\@form)
$ua->post($url,\%form,$field\u name=>$value,…)
$ua->post($url,$field\u name=>$value,…Content=>\%form)
$ua->post($url,$field\u name=>$value,…Content=>\@form)
$ua->post($url,$field\u name=>$value,$Content=>$Content)
此方法将在给定的$url
上发送POST请求,%form
或@form
为填写表单内容提供键/值对
与使用get
方法一样,您可以通过将头作为名称/值对传递来生成附加头。以下内容将发布%form
中的表单数据,并设置Cookie
标题:
my %form = (
foo => 'bar',
answer => 42
);
my $ua = LWP::UserAgent->new;
$ua->post( 'http://www.example.com', Cookie => $cookie, \%form );
这实际上是在后台使用的POST
函数来生成请求。HTTP::Request::Common
文档介绍了如何生成更复杂的请求。HTTP::Request是的一个子类。我想你会在那里找到你想要的方法。这不是我想要的。我需要对HTTP::Request
进行完全控制,我对全部细节感兴趣。你说的“完全控制”是什么意思?您还可以在post
方法中设置头,这样我就不知道您还需要什么。另外,请注意LWP::UserAgent
用于生成请求,因此可以向HTTP::request::Common
post请求添加任何内容,您可以添加到LWP::UserAgent
post
。您可能需要查看WWW::Mechanize,它是一个围绕LWP::UserAgent的包装器,使发布和其他常见任务变得非常容易。