2

LWPリクエストに対する応答はapplication/x-www-form-urlencoded、オブジェクトメソッドを介してこのテキストをハッシュに変換することは可能ですか?

4

1 に答える 1

8
# from a HTTP::Response object
my $urlencoded = $response->content;
  1. VarsinCGIはハッシュを返します。

    use CGI qw();
    CGI->new($urlencoded)->Vars;
    
  2. parametersinPlack::Requestはオブジェクトを返しHash::MultiValueます。これは、実際にはこれに適したデータ構造です。

    use Plack::Request qw();
    Plack::Request->new({QUERY_STRING => $urlencoded})->parameters;
    
  3. paramin APR::Request/libapreq2 -Perlハッシュではありませんが、動作が十分に近いMagicがアタッチされたXSオブジェクトです。

    insert hand-waving here, no libapreq2 available right now for testing
    
  4. url_params_mixedURL::Encode

    require URL::Encode::XS;
    use URL::Encode qw(url_params_mixed);
    url_params_mixed $urlencoded;
    
  5. parse_query_stringCGI::Deurl::XS

    use CGI::Deurl::XS 'parse_query_string';
    parse_query_string $urlencoded;
    
  6. query_forminURIもピンチでうまく機能します。でそうしquery_form_hashますURI::QueryParam

    use URI qw();
    URI->new("?$urlencoded")->query_form;
    
    use URI::QueryParam qw();
    URI->new("?$urlencoded")->query_form_hash;
    
  7. ボーナス:CatalystHTTP::Body::UrlEncodedで使用されている「」も参照してください。

于 2012-03-13T19:44:23.063 に答える