![](/img/trans.png)
[英]SOAP-ERROR: Parsing WSDL: Couldn't load from 'wsdl' : failed to load external entity “wsdl”
[英]SOAP-ERROR: Parsing WSDL: Couldn't load from 'website 'failed to load external entity
在 Wamp 服务器(本地)中,我的代码有效,但在 Centos 6 上的 Web 服务器中,脚本不起作用。 为什么? 我已经阅读了很多答案,但没有找到解决方案。
无法从“ https://example.com/WEBService/SearchService.svc/wsdl?wsdl ”加载:无法加载外部实体“ https://example.com/WEBService/SearchService.svc/wsdl?wsdl ”
private $_wsdl_uri = 'https://example.com/WEBService/SearchService.svc/wsdl?wsdl';
private static $_soap_client = false;
private static $_inited = false;
public function init(&$errors)
{
if(!self::$_inited)
{
try
{
if (self::$_soap_client = @new SoapClient($this->_wsdl_uri, array('soap_version' => SOAP_1_1)))
self::$_inited = true;
}
catch (Exception $e)
{
$errors[] = 'Error here '.$e->getMessage();
return false;
}
}
return self::$_inited;
}
php -m | grep -i 肥皂
肥皂
安装了openssl。
在我的网络服务器中安装了 php 5.6。 在 Wamp 服务器(本地)php 5.3 中。
我通过传递上下文流禁用了 SSL 认证:
"stream_context" => stream_context_create(
array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
)
)
)
所以它有效。
private $_wsdl_uri = 'https://example.com/WEBService/SearchService.svc/wsdl?wsdl';
private static $_soap_client = false;
private static $_inited = false;
public function init(&$errors)
{
if(!self::$_inited)
{
try
{
if (self::$_soap_client = @new SoapClient($this->_wsdl_uri, array('soap_version' => SOAP_1_1, "stream_context" => stream_context_create(
array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
)
)
)
)
))
self::$_inited = true;
}
catch (Exception $e)
{
$errors[] = 'Error here '.$e->getMessage();
return false;
}
}
return self::$_inited;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.