我必须向一个包含GET变量(查询字符串)的URL发出POST请求。
我尝试了以下内容(看起来像simepl /逻辑方式最多),但它不起作用:
my $ua = LWP::UserAgent->new;
my $res = $ua->post('http://my.domain/index.pl?login=yes', {
username => $username,
password => $password
});
my.domain / index.pl确实接收到任何请求,但只要删除查询字符串“?login = yes”,请求就会正常运行。
答案 0 :(得分:2)
my $res = $ua->post('http://my.domain/index.pl?login=yes', {
username => $username,
password => $password
});
归结为
use HTTP::Request::Common qw( POST );
my $req = POST('http://my.domain/index.pl?login=yes', {
username => $username,
password => $password,
});
my $res = $ua->request($req);
通过使用print $req->as_string();
,您可以看到它完全符合您的说法。
POST http://my.domain/index.pl?login=yes
Content-Length: 35
Content-Type: application/x-www-form-urlencoded
password=PASSWORD&username=USERNAME
问题出在其他地方。