在PHP中,php://input
可以读取原始请求正文数据,这是我在这种情况下所需要的。然而,服务器端主干的其余部分都是用PERL编写的,所以我试图找到php://input
的替代方法 - 我不能。
如何在Perl中获取原始POST数据(请求正文)? (CGI变量绝对没有显示)。
谢谢!
答案 0 :(得分:5)
来自CGI模块的文档,
如果POSTed数据不是application / x-www-form-urlencoded或multipart / form-data类型,则不会处理POSTed数据,而是在名为POSTDATA的参数中按原样返回。要检索它,请使用以下代码:
my $data = $query->param('POSTDATA');
答案 1 :(得分:-1)
要处理所有情况,包括 Content-Type 为multipart/form-data
的情况,请先读取(并放回)原始数据,先于。
use strict;
use warnings;
use IO::Handle;
use IO::Scalar;
STDIN->blocking(1); # ensure to read everything
my $cgi_raw = '';
{
local $/;
$cgi_raw = <STDIN>;
my $s;
tie *STDIN, 'IO::Scalar', \$s;
print STDIN $cgi_raw;
tied(*STDIN)->setpos(0);
}
use CGI qw /:standard/;
...