在perl中使用XML发布请求

在perl中使用XML发布请求,xml,perl,post,Xml,Perl,Post,现在我得到的内容类型不能被消费。以下是工作流的实际摘要或场景,工作流需要更精确,以便准确地解释自己: 请说明我做错了什么 use LWP::UserAgent; use HTTP::Request::Common; my $sendXML="INPUT.XML"; my $resultXML="RESULT.XML"; my $message = <<'XML'; <criteria> <includeFilterSets> <filte

现在我得到的内容类型不能被消费。以下是工作流的实际摘要或场景,工作流需要更精确,以便准确地解释自己:

请说明我做错了什么

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;

}
使用LWP::UserAgent;
使用HTTP::Request::Common;
my$sendXML=“INPUT.XML”;
my$resultXML=“RESULT.XML”;
我的$message='http/Testlocation');
my$ua=LWP::UserAgent->new;
我的$response=$ua->post($webpage,Content\u Type=>'text/xml',Content=>$message);
如果($response->is\u success){
打印$response->decoded_content;#或其他内容
}
否则{
#骰子$response->status\u行;
打印$response->解码内容;
}

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

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;


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

请对您的需求进行更深入的解释。问题是什么?构建XML?将其放入HTTP请求中?有很多模块用于处理XML和在上进行HTTP请求,大多数模块都有相当好的文档。您选择了哪些模块?你不明白文档的内容吗?我已经分享了我对我的问题的看法。请建议。那里@Quentin.suggest。我希望你现在就知道我的问题了。那里@MiguelPrz.suggest请告诉我如何使用POST解析我的XML,因为我想摆脱你提到的无限循环。在通过simbabque我收到的错误消息是“内容类型无法使用”。我该怎么做才能解决这个问题。请提出建议。Simbabque您能进一步帮助我吗。@user2260105您有针对您正在编写代码的Web服务的文档吗?上面说什么?您的错误消息是否来自服务?POST请求与解析任何内容无关。您可以解析响应(但现在没有)。示例代码中的文件是用于什么的?是否要从文件中读取输入?为此打开一个新问题。堆栈溢出是针对特定问题的问答平台,而不是论坛。如果此答案有帮助,请单击投票下方左侧的复选标记,将其标记为正确。非常感谢。
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;
}