【问题标题】:How can I send XML to a CGI program from Perl?如何从 Perl 将 XML 发送到 CGI 程序?
【发布时间】:2009-06-12 01:29:40
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: xml perl cgi


    【解决方案1】:

    其中一种可能的解决方案是使用 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, $/;
    }
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      假设您的程序中已经有了 XML;这只是一个 HTTP 请求,所以LWP 是你的朋友。具体细节取决于 CGI 程序如何期望 XML 被传递(例如,作为 POST 的 url-encoded-form-data、多部分 MIME 等)

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2010-09-30
          • 2023-03-10
          • 2016-08-22
          • 2011-10-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-14
          • 2011-11-13
          相关资源
          最近更新 更多