12
use LWP::UserAgent;
use Data::Dumper;

my $ua = new LWP::UserAgent;
$ua->agent("AgentName/0.1 " . $ua->agent);
my $req = new HTTP::Request POST => 'http://example.com';
$req->content('port=8', 'target=64'); #problem
my $res = $ua->request($req);

print Dumper($res->content);

$req->content を使用して複数のコンテンツを送信するにはどうすればよいですか? $req->content はどのようなデータを期待していますか?

最後の 1 つだけを送信します。

編集:

「port=8&target=64」のようにフォーマットすると、機能することがわかりました。より良い方法はありますか?

4

3 に答える 3

15
my $ua      = LWP::UserAgent->new(); 
my $request = POST( $url, [ 'port' => 8, 'target' => 64 ] ); 
my $content = $ua->request($request)->as_string(); 
于 2012-06-29T15:23:11.343 に答える
4

与えられた答えは私にはうまくいきませんでした。私はまだOPと同じ問題を抱えていました。

LWP::UserAgentのドキュメントでは、ハッシュまたは配列の参照が必要です。

これは機能します:

my $url = 'https://www.google.com/recaptcha/api/siteverify';
my $ua      = LWP::UserAgent->new(); 

my %form;
$form{'secret'}='xxxxxxxxxxxxxxxxxxxxxxx';
$form{'response'}=$captchaResponse;

my $response = $ua->post( $url, \%form ); 
my $content = $response->as_string();
于 2015-12-12T18:34:54.070 に答える