dongnong7524 2016-05-05 11:26
浏览 173

SOAP-ERROR:解析WSDL:无法从“网站”加载无法加载外部实体

In Wamp server (locally) my code works, but in my web server on Centos 6 the script doesn't work. Why? I have read lot's of answers, but didn't find the solution.

Couldn't load from 'https://example.com/WEBService/SearchService.svc/wsdl?wsdl': failed to load external entity "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 soap

soap

openssl installed.

  • 写回答

1条回答 默认 最新

  • download1323 2016-05-10 15:16
    关注

    In my webserver is installed php 5.6. In Wamp server (locally) php 5.3.

    I disabled SSL certification, by passing context stream:

    "stream_context" => stream_context_create(
        array(
            'ssl' => array(
                'verify_peer'       => false,
                'verify_peer_name'  => false,
            )
        )
    )
    

    So it works.

      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;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集