我正在呼叫一个Web服务,客户验证呼叫是否成功,这意味着我的数据非常适合我们的服务器。但不幸的是,我无法阅读输出。 这是我第一次遇到。我使用SOAP Web服务已经很多年了。
我正在调用Web服务如下,这是非常常见的
my $som = $soap->call(
.............................
);
我试图得到如下结果,但它不起作用
my $result = $som->result;
当我使用SOAPUI调用Web服务时,我可以看到结果:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<WebServiceOutput xmlns="http://xmlns.oracle.com/keyword/firm/method">
<OUTPUT1>string1</OUTPUT1>
<OUTPUT2>string2</OUTPUT2>
<OUTPUT3>string3</OUTPUT3>
</WebServiceOutput>
</soap:Body>
</soap:Envelope>
我也转储$som
,但不包含上述结果。我正在等待查看字词string1
,string2
,但它不存在
我该如何处理结果?
答案 0 :(得分:1)
我有来自同一客户的其他网络服务,该网站服务成功运作。所以我与它进行了比较,发现了一个引起问题的小差异。
我的wsdl地址是:http://xxx.xx.xx.xx:8080/orawsv/company/method?wsdl
我打电话如下,代理值包括&#34; wsdl&#34;。当我从代理值中删除它时,我可以使用代码$ som-&gt; result。
获得结果my $soap = SOAP::Lite
-> on_action( sub { join '/', @_ } )
-> readable(1)
-> uri($uri)
-> proxy("http://xxx.xx.xx.xx:8080/orawsv/company/method?wsdl")
-> ns("http://schemas.xmlsoap.org/soap/envelope/","soapenv");
但我无法理解为什么需要删除&#34;?wsdl&#34;从代理值中标记,因为我总是在以前的作品中添加它。