在某个脚本中我试着写这个:
my $ua = LWP::UserAgent->new;
my $res = $ua->post($url, Content => $data);
并得到“400 Bad Request”。 经过一番阅读后我尝试了这个:
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new( 'POST', $url );
$req->content( $data );
my $res = $ua->request( $req );
它有效,但我认为这两个应该做同样的事情。我在这里错过了什么? 我是否误解了HTTP::Request和LWP::UserAgent的文档中的某些内容?
有没有办法让LWP :: UserAgent打印它正在做什么?
答案 0 :(得分:0)
这是一种方法:
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
{
no strict "refs";
no warnings "redefine";
my $orig_sub = \&LWP::UserAgent::send_request;
*{"LWP::UserAgent::send_request"} = sub {
my ($self, $request) = @_;
print $request->as_string . "\n";
my $response = $orig_sub->(@_);
print $response->as_string . "\n";
return $response;
};
}
my $a = LWP::UserAgent->new;
my $response = $a->get("http://google.com");
它将打印出LWP :: UserAgent所做的所有请求和响应。