perl - 如何使用 CGI.pm 获取整个请求正文?

标签 perl cgi

我正在尝试编写一个 Perl CGI 脚本来处理 XML-RPC 请求,其中 XML 文档作为 HTTP POST 请求的主体发送。

CGI.pm 模块在从 HTTP 请求中提取命名参数方面做得很好,但我不知道如何让它给我整个 HTTP 请求正文(即我的 XML-RPC 请求中的 XML 文档处理)。

如果不是 CGI.pm,是否有另一个模块能够从请求中解析出这些信息?我宁愿不必从环境变量中“手动”提取这些信息。谢谢你的帮助。

最佳答案

您可以使用特殊参数名称 POSTDATA 获取原始 POST 数据。

my $q = CGI->new;
my $xml = $q->param( 'POSTDATA' );

或者,您可以直接读取 STDIN 而不是使用 CGI.pm,但是您会丢失 CGI.pm 所做的所有其他有用的东西。

POSTDATA 技巧记录在优秀的 CGI.pm 文档 here 中。 .

关于perl - 如何使用 CGI.pm 获取整个请求正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/908113/

相关文章:

perl - 如何使用 Perl 的 DBI 将日期值从 Oracle 转换为 Excel?

python - mod_wsgi、mod_python,还是只是 cgi?

c - 分块读取标准输入...(可能使用 scanf?)

mysql - MySQL 可以输出与 perl 打包整数等效的值吗?

perl - 为什么在 UTF-8 编码的 Perl 脚本中无法识别变音符号 "use utf8"?

perl - 强制 Time::Piece strftime 使用特定的语言环境

bash 的 HereDoc 中的 Perl 脚本

javascript - "Enter" key 的默认提交按钮

css - 操作系统错误 : [WinError 193] %1 is not a valid Win32 application for loading css file in python cgi script

ubuntu - cgi3.2.9 在 ubuntu 18.4 中安装失败