my %parameters = (
key => 'value'
);
my $response = $ua->get('http://example.com/i', %parameters);
我正在尝试获取 http://example.com/i?key=value
的内容,但调试后我发现 %parameters
存储在http header 而不是 url 参数。
我的代码有什么问题?
虽然 perldoc 告诉我:
$ua->get( $url , $field_name => $value, ... )
但如果我将这些参数放在 %parameters
中,它应该也能工作,对吧?
最佳答案
get
的附加参数是 HTTP header 。对于 GET 请求,参数包含在 URL 本身中,经过 URL 编码。您可以使用 URI模块创建适当的 URL,包括 GET 变量,或自己构造它们(可能使用 URI::Escape 对值进行 urlencode)。
例如:
my %parameters = (
key => 'value'
);
my $url = URI->new("http://example.com/i");
$url->query_form(%parameters);
my $response = $ua->get($url);
https://stackoverflow.com/questions/6515447/