perl - 为 LWP::UserAgent 设置参数时出现问题

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/

相关文章:

function - 为什么 Matlab 看不到我的函数?

ruby-on-rails-3 - Rails 3 在不注销的情况下设计更新密码

objective-c - [pool release] 和 [pool drain] 有什么区别?

ruby-on-rails - ruby rails : How can I add a css f

sql - 是什么导致了这种奇怪的 SQL 行为?

django - 将 Django 模型/表拆分为两个模型/表是否有性能优势?

java - 从代数表达式创建二叉树

perl - reverse 不在列表上下文中隐式使用 $_,这是一个错误吗?

f# - 将字典键添加到 F# 中的构造函数

amazon-ec2 - 使用pscp自动接受rsa指纹