使用perl REST :: Application来解析url查询字符串

时间:2015-10-12 09:22:02

标签: perl rest url

我使用perl的REST::Application在我的服务器上动态生成html,其cgi脚本看起来有点像:

my $url_map = { 
            qr|^/?$| => {
                    GET => \&get_help,
            },
            qr|^/builders/?$| => {
                    GET => \&get_builders,
            },
    };

我想添加对查询字符串的支持。例如,如果网址为www.example.com/query?param1=a&param2=b,我希望能够将这些值作为参数调用过程。但是,如果只给出其中一个参数,也应该支持它。

1 个答案:

答案 0 :(得分:-1)

可能的解决方案可能是使用HTML::EntitiesCGI

添加相关模块:

use CGI;
use HTML::Entities;

将prpoer行添加到$url_map

qr|^/query(.*)| => {
                    GET => \&get_query,
            }

并实施:

sub get_uploads {
    $rest->header(-type => "text/plain, charset=utf8");
    my $cgi = CGI->new;
    my %params = map { $_ => HTML::Entities::encode(join("; ", split("\0", $cgi->Vars->{$_}))) } $cgi->param;
    .
    .
    .
}

在此阶段%params将保留查询字符串。 例如,如果我在问题中使用url%params将是:

$VAR1 = {
      'param1' => 'a',
      'param2' => 'b'
    };