1

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

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

什么会导致 WSDL 无法加载?

4

2 回答 2

3

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

于 2013-09-29T21:16:12.983 回答
-1

不确定您是否会遇到这种情况,但如果您使用的是 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);
}
于 2013-09-30T04:19:02.633 回答