具有内容类型和授权令牌的Perl HTTP POST请求

时间:2014-02-28 18:26:24

标签: perl http-headers http-post content-type lwp-useragent

我需要发送带有以下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 ...

我该如何做到这一点?

1 个答案:

答案 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函数的事实,除非您从某处导入或自己编写它。)