【问题标题】:Uncaught SoapFault未捕获的肥皂故障
【发布时间】:2013-10-05 15:13:30
【问题描述】:

尝试创建新的 SoapClient 时出现以下错误。

致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR:解析 WSDL:无法从“https://api.mindbodyonline.com/0_5/ClassService.asmx?wsdl”加载:无法在 C:\xampp\htdocs\Work 中加载外部实体“https://api.mindbodyonline.com/0_5/ClassService.asmx?wsdl” \Ice\default\soaptest.php:8 堆栈跟踪:#0 C:\xampp\htdocs\Work\Ice\default\soaptest.php(8): SoapClient->SoapClient('https://api.min...') # 1 {main} 在第 8 行的 C:\xampp\htdocs\Work\Ice\default\soaptest.php 中抛出

什么会导致 WSDL 无法加载?

【问题讨论】:

    标签: php xml soap


    【解决方案1】:

    在您的 php.ini 中启用 openssl,您通过 https 加载 WSDL,这仅在启用 openssl 模块时有效。

    【讨论】:

      【解决方案2】:

      不确定您是否会遇到这种情况,但如果您使用的是 Github 上 Minbody API 上提供的 PHP 类,请注意它们最近更新了它们。我对 classService.php 有同样的问题。如果您使用的是 classService.php,请将构造函数更新为以下内容(同样适用于其他服务):

      function __construct($debug = false)
      {
          $endpointUrl = "https://" . GetApiHostname() . "/0_5/ClassService.asmx";
          $wsdlUrl = $endpointUrl . "?wsdl";
      
          $this->debug = $debug;
          $option = array();
          if ($debug)
              {
                  $option = array('trace'=>1);
              }
          $this->client = new soapclient($wsdlUrl, $option);
          $this->client->__setLocation($endpointUrl);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多