php soapclient 异常,PHP调用wsdl接口实例化SoapClient抛出异常

php soapclient 异常,PHP调用wsdl接口实例化SoapClient抛出异常异常:Message:SOAP-ERROR:ParsingWSDL:Couldn‘tloadfrom‘http://*****?wsdl‘:failedtoloadexternalentity”http://****?wsdl”。本地调用接口正常,放到服务器上以后,出现了500错误。try{}cache(){}:try{$client=newSoapClient($ws…

大家好,欢迎来到IT知识分享网。

异常:Message:SOAP-ERROR: Parsing WSDL: Couldn‘t load from ‘http://*****?wsdl‘ : failed to load external entity “http://****?wsdl”。

本地调用接口正常,放到服务器上以后,出现了500错误。try{}cache(){}:

try{

$client=new SoapClient($wsdl);

}catch(Exception $e){

echo ‘Message:‘.$e->getMessage();

}

抛出异常:Message:SOAP-ERROR: Parsing WSDL: Couldn‘t load from ‘http://*****?wsdl‘ : failed to load external entity “http://****?wsdl”。

首先确认,服务器PHP环境配置和本地一样。也百度了很多解决办法,都没起作用,请教了接口的开发者.NET 工程师。发给一张截图:

eb22fb9df268267b55fbb7b1636fa266.png

解决办法:$client=new SoapClient($wsdl);这句代码前添加libxml_disable_entity_loader(false); 问题就这样解决了。

查libxml_disable_entity_loader()作用:Disable the ability to load external entities(禁用加载外部实体的能力)。

SoapClient在我的代码里面确实是外部的实体,我不禁用加载外部实体的能力,就可以实例化SoapClient。问题也就自然而然的解决了。

PHP调用Web services接口实例:

$url=‘http://****?wsdl‘;

$client = new SoapClient($url);

$param = array(“param1″=>$param1,”param2″=>$param2);

方法1:

$p = $client->__soapCall(‘functionname‘,array(“parameters”=>$param));

$arr= json_decode($p->functionnameResult,true);

方法2:

$ret2 = $client->functionname($param);

$actjson=$ret2->functionnameResult;

$arr=json_decode($actjson,true);

return $arr;

原文:http://www.cnblogs.com/Ann-wxp/p/6726867.html

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23782.html

(0)
上一篇 2023-09-03 17:33
下一篇 2023-09-05 21:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信