2012-06-29 44 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); 

Làm cách nào để gửi nhiều phần nội dung bằng $ req-> content? Loại nội dung $ req-> mong đợi như thế nào?Cách đăng nội dung bằng Yêu cầu HTTP (Perl)

Chỉ gửi thư cuối cùng.

Edit:

Tìm thấy ra nếu tôi định dạng nó như 'cổng = 8 & target = 64' nó hoạt động. Có cách nào tốt hơn?

Trả lời

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

Mặc dù các mã trong câu hỏi tôi muốn đi với một cách tiếp cận OOP đầy đủ: 'tôi $ ua = LWP :: UserAgent-> mới(); $ $ = $ ua-> bài viết của tôi ($ url, $ tham số); my $ content = $ response-> as_string(); ' – dennis

1

Câu trả lời được đưa ra không có tác dụng đối với tôi. Tôi vẫn gặp vấn đề tương tự như OP.

Tài liệu dành cho LWP::UserAgent muốn tham chiếu băm hoặc mảng.

này hoạt động:

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(); 
Các vấn đề liên quan