如何在Perl中编码HTTP GET查询字符串?
发布时间:2020-12-15 21:22:57 所属栏目:大数据 来源:网络整理
导读:这个问题与 What’s the simplest way to make a HTTP GET request in Perl?有些有关. 在通过LWP :: Simple发出请求之前我有一个需要序列化/转义的查询字符串组件的哈希.什么是编码查询字符串的最佳方法?它应该考虑到需要在有效URI中转义的空格和所有字符.
这个问题与
What’s the simplest way to make a HTTP GET request in Perl?有些有关.
在通过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); 解决方法
URI::Escape做你想要的
use URI::Escape; sub escape_hash { my %hash = @_; my @pairs; for my $key (keys %hash) { push @pairs,join "=",map { uri_escape($_) } $key,$hash{$key}; } return join "&",@pairs; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |