繁体   English   中英

SOAP-ERROR:解析 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM