【发布时间】:2017-09-16 18:37:15
【问题描述】:
如果发生请求,我会从网络服务器获取对象 HTTP::Request。我只在 URL 中看到 GET-query-parameters,或者它来自标头中的 POST。
有没有办法 HTTP::Request 或任何其他包以一种很好的方式(例如哈希)为我提供这些参数,而我不需要自己解析它?
例如得到 http://example.net?a=3&b=jack
我想访问 a (= 3) 和 b (= jack) 的值,而不需要从 URL 或 HTTP-Header(如果是 POST)手动解析它。
谢谢!
编辑
感谢有关包 URI 的好建议。它非常适用于 URL 中的参数。
但不适用于参数在正文中的 POST。为此我对其进行了调整。
if ($req->method eq "POST") # $req is HTTP::Request
{ {
my $uri = URI->new ("/whatever?" . $req->content); # not very pretty
%params = $uri->query_form ();
...
获得相同的结果。您认为这是个好主意还是有更好、更直接的方法?
【问题讨论】: