2012-06-29 13 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 kullanarak birden çok içerik parçasını nasıl gönderebilirim? $ Req-> içeriği ne tür veriler bekliyor?İçindekiler HTTP İsteğiyle Nasıl POST Nasıl Yapılır (Perl)

Yalnızca sonuncuyu gönderir.

Düzenleme:

i gibi biçimlendirmek olmadığını Bulunan

'port = 8 & target = 64' çalışıyor. Daha iyi bir yolu var mı?

cevap

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

Ben tam NYP yaklaşımı ile giderdik söz konusu kod rağmen: 'Benim $ ua = LWP :: UserAgent-> yeni(); $ response = $ ua-> gönderim ($ url, $ parameter); $ content = $ response-> as_string(); ' – dennis

1

Verilen cevap benim için çalışmadı. Hala OP ile aynı problemi yaşadım.

LWP::UserAgent belgeleri, karma veya dizi başvurusu istiyor.

Bu çalışır:

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();