带有xml数据对象的SOAP::WSDL

带有xml数据对象的SOAP::WSDL,xml,perl,web-services,soap,wsdl,Xml,Perl,Web Services,Soap,Wsdl,我编写了以下程序来发送SOAP请求 use SOAP::Lite +trace; use XML::LibXML; $client = SOAP::Lite->service('https://services.company.domain/svcfile.svc?wsdl'); $xmlFileHandle = XML::LibXML->load_xml(location => 'request.xml'); $xmlContent = SOAP::Data->

我编写了以下程序来发送SOAP请求

use SOAP::Lite +trace;
use XML::LibXML;

$client = SOAP::Lite->service('https://services.company.domain/svcfile.svc?wsdl');
$xmlFileHandle = XML::LibXML->load_xml(location => 'request.xml');   
$xmlContent = SOAP::Data->type('xml' => $xmlFileHandle);   
$result = $client->RetrieveInfo($xmlContent);
print "$result";
当我浏览返回的XML时,它会显示错误的请求(错误400)。
当我在SOAPUI中粘贴原始XML代码时,它会正常工作并返回所需的信息。

导致错误请求错误的行是:

$result = $client->RetrieveInfo($xmlContent);
如何更正此错误?
谢谢。

您是否查看了实际请求及其标题?@simbabque我不确定您指的是http标题还是soap标题。但是请求没有soap标题,而是有soap正文。我指的是http标题。或者更确切地说是整个事情。跟踪模式应该会有所帮助。如果没有,请安装LWL::ConsoleLogger::Everywhere并使用它。它会给你完整的请求。既然您说xml是从另一个程序工作的,那么它必须是http头。@simbabque WSDL文件需要一个文本变量作为输入。但是变量
result
的类型是
SOAP::Data=HASH(0x33f11a0)
。因此,我需要传递一个xml文本。我如何才能做到这一点?您是否查看了实际请求及其标头?@simbabque我不确定您是指http标头还是soap标头。但是请求没有soap标头,而是有soap正文。我指的是http标头。或者更确切地说是整个事情。跟踪模式应该会有所帮助。如果没有,请安装LWL::ConsoleLogger::Everywhere并使用它。它会给你完整的请求。既然您说xml是从另一个程序工作的,那么它必须是http头。@simbabque WSDL文件需要一个文本变量作为输入。但是变量
result
的类型是
SOAP::Data=HASH(0x33f11a0)
。所以我需要传递一个xml文本。我怎么做?