xml - 在 perl 中使用 XML 的 POST 请求

标签 xml perl post

现在我知道内容类型无法使用。这是工作流的实际摘要或场景,工作流需要更精确,以便准确地解释自己:

请指出我做错了什么。

use LWP::UserAgent;
use HTTP::Request::Common;
my $sendXML="INPUT.XML";
my $resultXML="RESULT.XML";
my $message = <<'XML';
<criteria>
<includeFilterSets>
        <filterSet>
            <filter>
                <filterName>PRODUCT_NAME</filterName>
                </filterSet>
    </excludeFilterSets>
    </entityToSearch>
<criteria>
XML

my $webpage="http://example.com/";
#my $webpage = HTTP::Request->new(GET => 'http/Testlocation');
my $ua = LWP::UserAgent->new; 
my $response = $ua->post($webpage, Content_Type => 'text/xml', Content => $message);
if ($response->is_success) {
    print $response->decoded_content;  # or whatever
}
else {
    #die $response->status_line;
    print $response->decoded_content;

}

最佳答案

您已经构建了一个无限循环。这就是您的内存不足警告的来源。

my $message="test"; 
open(XML,$sendXML); 
while ("
    <includeFilterSets>
        <filterSet>
            <filter>
                <filterName>VERSION_NAME</filterName>
                <operator>
                    <name>In</name>
                </operator>
                <value>10.0u</value>
                </filter>
        </filterSet>
    </includeFilterSets>") {
} 
close XML;

我不知道你想用这个实现什么,但这不是你想做的。此代码段执行以下操作:

  • $test 设置为 'test'
  • 打开$sendXML中文件名的文件句柄>
  • 只要 XML 片段为真,什么都不做(情况总是如此,因此无限循环)
  • 从未达到关闭

您的其余代码没问题。

你要做的就是这个。我遗漏了文件句柄的东西。

my $message = <<'XML';
<includeFilterSets>
        <filterSet>
            <filter>
                <filterName>VERSION_NAME</filterName>
                <operator>
                    <name>In</name>
                </operator>
                <value>10.0u</value>
            </filter>
    </filterSet>
</includeFilterSets>
XML

my $webpage="http://example.com/";
my $ua = LWP::UserAgent->new; 
my $response = $ua->post($webpage, Content_Type => 'text/xml', Content => $message);
if ($response->is_success) {
    print $response->decoded_content;  # or whatever
}
else {
    die $response->status_line;
}

忠告:始终使用严格使用警告,并查看三参数打开和词法文件句柄。这将使您的生活更轻松。

关于xml - 在 perl 中使用 XML 的 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16010674/

相关文章:

perl - ExtUtils::MakeMaker:如何为测试和/或安装指定二进制可执行文件先决条件?

mysql - 使用 POST 将安全数据从 .NET 发送到 Linux 服务器?

vba - 在 VBA 中将图片上传到 file.io (HTTP Post)

Python:非侵入式处理 XML 文件

xml - 对 XML 文档的各个部分进行数字签名

php - 使用php将xml转换为mysql?

perl - perl 包是自动生成的吗?它们究竟是如何工作的?

perl - 如何在打印前过滤掉我的计算机上不可用的代码点?

java - 如何将多个 AsyncHttpClient 请求的结果添加到列表中

java - pom.xml 无法从外部属性文件读取属性