此問題與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