【发布时间】:2009-06-12 01:29:40
【问题描述】:
我想将一些 XML 从 Perl 程序发送到 CGI 脚本,该脚本利用 XML::Simple 将该 XML 作为输入并将 XML 作为输出发送。
有没有办法从 Perl 将 XML 发送到 CGI 脚本?非常感谢您在这方面的任何帮助。
谢谢
【问题讨论】:
我想将一些 XML 从 Perl 程序发送到 CGI 脚本,该脚本利用 XML::Simple 将该 XML 作为输入并将 XML 作为输出发送。
有没有办法从 Perl 将 XML 发送到 CGI 脚本?非常感谢您在这方面的任何帮助。
谢谢
【问题讨论】:
其中一种可能的解决方案是使用 HTTP::Request::Common 模块,它公开了一些有用的功能,例如 GET、POST 和 HEADER。
假设您想使用POST 将数据发送到远程应用程序,您可以这样做:
use HTTP::Request::Common;
use LWP::UserAgent;
my $url = 'http://localhost/cgi-bin/mycgi.pl';
my $xml = "<root></root>";
my $request = POST $url, Content_Type => 'text/xml; charset=utf-8', Content => $xml;
my $ua = LWP::UserAgent->new();
my $response = $ua->request($request);
if ( $response->is_success() ) {
print $response->content();
}
else {
warn $response->status_line, $/;
}
希望这会有所帮助!
【讨论】:
假设您的程序中已经有了 XML;这只是一个 HTTP 请求,所以LWP 是你的朋友。具体细节取决于 CGI 程序如何期望 XML 被传递(例如,作为 POST 的 url-encoded-form-data、多部分 MIME 等)
【讨论】:
XML 没有什么特别之处:它只是文本。像发送任何其他文本一样发送它。还有什么不适合你的吗?您已经尝试过什么?
如果您在向 CGI 程序发送任何内容时遇到问题,请查看诸如 WWW::Mechanize 之类的框架,它为您完成了请求和响应循环的大部分工作。
【讨论】: