我需要发送带有以下HTTP标头的HTTP POST请求:
Content-type: 'application/atom+xml'
Authorization: MyLogin auth=$token
令牌来自授权子程序。以下是Perl在子例程成功后发出实际请求:
my $ua = LWP::UserAgent->new;
my $req = $ua->post ( $url );
$req = header('Content-type' => 'application/atom+xml');
$req = header('Authorization' => "MyLogin auth=$token");
但是,运行时收到以下错误:
Undefined subroutine &main::header called ...
我该如何做到这一点?
答案 0 :(得分:3)
根据LWP::UserAgent documentation,您可以通过将其作为参数传递给post
来设置其他标头:
my $ua = LWP::UserAgent->new;
my $response = $ua->post($url,
'Content-type' => 'application/atom+xml',
'Authorization' => "MyLogin auth=$token"
);
请注意,$ua->post
实际上发送了请求,因此尝试在调用之后设置标题,就像在示例代码中一样,是没用的。 (更不用说header
命名空间中没有main
函数的事实,除非您从某处导入或自己编写它。)