2014-09-20 21 views
1

您好,我有一个移动客户端(地理围栏应用程序),它将发送触发HTTP请求(POST)。这将由我的Web服务器上的perl脚本获取。获取/转储来自http post的所有信息与perl

目前我不知道如何HTTP请求的结构。我如何可以用perl来获取完整的HTTP请求来分析它?猜猜最好的方法是将请求转储到文件。

据我了解CGI,处理HTTP POST请求我需要给对象名称,但我不知道他们。有没有办法转储完整的请求?

回答

2

CGI脚本没有收到HTTP请求。如果你想甩由CGI脚本收到的表单数据,您可以使用以下命令:

use CGI   qw(); 
use Data::Dumper qw(Dumper); 

my $cgi = CGI->new(); 
my %form; 
for my $param ($cgi->param()) { 
    $form{$param} = [ $cgi->param($param) ]; 
} 

print($cgi->header('text/plain')); 

local $Data::Dumper::Indent = 1; 
local $Data::Dumper::Sortkeys = 1; 
local $Data::Dumper::Useqq = 1; 
print(Dumper(\%form)); 
+0

感谢,池上,这是带我到正确的方式....看起来likle请求是一个JSON结果从打印(倾卸($形式));是$ VAR1 = [{“timestamp”=>“Array(0x123),”id“=>”Array(0x123)}]。 与此我可以工作:) – 2014-09-20 20:03:02

+0

不应该看起来像那样......丑恶,CGI的'瓦尔斯'做了一件非常神奇的事情。更新了我的答案。 – ikegami 2014-09-21 00:57:22

+0

您可能还想'打印Dumper(\%ENV);'查看Web服务器从请求中设置的环境变量。 – mivk 2017-08-18 14:02:06