此问题与What’s the simplest way to make a HTTP GET request in Perl?有些相关。如何在Perl中编码HTTP GET查询字符串?
通过LWP::Simple
发出请求之前,我有一个查询字符串组件的散列,我需要序列化/转义。 对查询字符串进行编码的最佳方式是什么?它应该考虑空格和需要在有效URI中转义的所有字符。我想这可能是在现有的包中,但是我不知道如何去找到它。
use LWP::Simple;
my $base_uri = 'http://example.com/rest_api/';
my %query_hash = (spam => 'eggs', foo => 'bar baz');
my $query_string = urlencode(query_hash); # Part in question.
my $query_uri = "$base_uri?$query_string";
# http://example.com/rest_api/?spam=eggs&foo=bar+baz
$contents = get($query_uri);
不久:sub escape_hash {my%h = @_;返回连接'&',地图{连接'=',地图uri_escape($ _),$ _,$ h {$ _}}键%h} – 2009-01-16 13:03:16
我也这样做,但嵌套地图只是没有看对我来说。 – 2009-01-16 13:08:48
对于(每个)内部映射,推送声音对我而言同样复杂,但它会引入不需要的临时变量。 – 2009-01-16 21:50:10