您的位置:首页 > 其它

解决 SOAP-ERROR: Parsing WSDL: Couldn't load from 问题

2016-04-14 16:26 429 查看
当使用soap

$url = "http://********?wsdl";
$objSoapClient = new SoapClient($url);


创建一个对象的时候,有时候会出现

SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://********?wsdl' : failed to load external entity "http://********?wsdl"


可能是因为接口不稳定。

解决方案,建议使用try

$url = "http://********?wsdl";
try{
$objSoapClient = new SoapClient($url);
} catch (Exception $e) {
print $e->getMessage();
}


这样就不会在生产代码运行时,接口不稳定,造成报错。

后期使用发现不是接口的问题,可能是php soap的问题。具体是为什么我也不清楚,经过查找资料。使用nusoap会比较好点,至少没发生这个问题。

nusoap下载地址

我的资源nusoap0.9.5

<?php
require_once("nusoap.php");

$url = "http://*****?WSDL";
$client = new nusoap_client($url, "wsdl");
// 避免乱码
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;
$client->xml_encoding = 'UTF-8';

// 然后通过调用对方提供的方法
$client->call('function_name', $param);


这样应该就可以解决这个问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: