如何从Perl向CGI程序发送XML?

时间:2009-06-11 11:06:23

标签: xml perl cgi

我想将一些XML从Perl程序发送到CGI脚本,该脚本利用XML::Simple将该XML作为输入并将XML作为输出发送。

有没有办法从Perl向CGI脚本发送XML?在这方面的任何帮助将非常感激。

谢谢

3 个答案:

答案 0 :(得分:2)

其中一个可能的解决方案是使用HTTP :: Request :: Common模块,该模块公开了一些有用的函数,如GETPOSTHEADER

假设您要使用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, $/;
}

希望这有帮助!

答案 1 :(得分:0)

假设您已经在程序中使用了XML;它只是一个HTTP请求,因此LWP是您的朋友。具体取决于CGI程序如何期望传递XML(例如,作为POST的url编码形式数据,多部分MIME等)

答案 2 :(得分:0)

XML没有什么特别之处:它只是文本。像发送任何其他文本一样发送它。还有其他不适合你的东西吗?你有什么尝试?

如果您在向CGI程序发送任何内容时遇到问题,请查看WWW::Mechanize这样的框架,它可以为您完成请求和响应循环的大部分工作。