簡體   English   中英

LWP :: UserAgent和HTTP :: POST請求的請求

[英]LWP::UserAgent and HTTP::Request for a POST request

在某個腳本中,我嘗試編寫以下代碼:

my $ua = LWP::UserAgent->new;
my $res = $ua->post($url, Content => $data);

並收到“ 400錯誤請求”。 經過一番閱讀,我嘗試了一下:

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new( 'POST', $url );
$req->content( $data );
my $res = $ua->request( $req );

並且有效,但是我認為這兩個應該做的一樣。 我在這里想念什么? 我是否誤解了HTTP :: RequestLWP :: UserAgent文檔中的某些內容?

有沒有辦法讓LWP :: UserAgent打印它在做什么?

這是一種實現方法:

#!/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所做的所有請求和響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM