2012-06-29 10 views
10
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はどのような種類のデータですか?HTTPリクエスト(Perl)でコンテンツをPOSTする方法

最後のもののみを送信します。

編集:

が、私はそれが動作する 'ポート= 8 &ターゲット= 64' のようにそれをフォーマットする場合が分かりました。より良い方法がありますか?

答えて

14
my $ua  = LWP::UserAgent->new(); 
my $request = POST($url, [ 'port' => 8, 'target' => 64 ]); 
my $content = $ua->request($request)->as_string(); 
+2

私は完全なOOPのアプローチで行くだろう問題のコードにもかかわらず: '私の$ UA = LWP :: UserAgent->新しいです(); my $ response = $ ua-> post($ url、$ parameter); my $ content = $ response-> as_string(); ' – dennis

1

答えは私のためには機能しませんでした。私はまだ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(); 
関連する問題