LWP :: UserAgent - HTTP :: Request

sid*_*com 2 perl lwp-useragent http-request

如果我这样做

#!/usr/local/bin/perl
use warnings;
use 5.014;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new();
my $res = $ua->get( 'http://www.perl.org' );
Run Code Online (Sandbox Code Playgroud)

我可以调用这样的HTTP::Response方法

say $res->code;
Run Code Online (Sandbox Code Playgroud)

是否有可能HTTP::Request$res对象调用方法或需要HTTP::Request显式创建对象?


my $ua = LWP::UserAgent->new();

my $method;

my $res = $ua->get( 'http://www.perl.org' );

$ua->add_handler( request_prepare => sub { my( $request, $ua, $h ) = @_; $method = $request->method; },  );

say $method; # Use of uninitialized value $method in say
Run Code Online (Sandbox Code Playgroud)

ike*_*ami 5

获取为您创建的请求对象:

my $response = $ua->get('http://www.example.com/');
my $request = ($response->redirects, $response)[0]->request;
Run Code Online (Sandbox Code Playgroud)

可能更容易自己创建一个请求对象

use HTTP::Request::Common qw( GET );
my $request = GET('http://www.example.com/');
my $response = $ua->request($request);
Run Code Online (Sandbox Code Playgroud)