尝试创建新的SoapClient时出现以下错误。
致命错误:未捕获的SoapFault异常:[WSDL] SOAP-ERROR:解析WSDL:无法从“https://api.mindbodyonline.com/0_5/ClassService.asmx?wsdl”加载:无法在C:\ xampp中加载外部实体“https://api.mindbodyonline.com/0_5/ClassService.asmx?wsdl” \ htdocs \ Work \ Ice \ default \ soaptest.php:8堆栈跟踪:#0 C:\ xampp \ htdocs \ Work \ Ice \ default \ soaptest.php(8):SoapClient-> SoapClient('{{3} } ...')在第8行的C:\ xampp \ htdocs \ Work \ Ice \ default \ soaptest.php中抛出#1 {main}
什么会导致WSDL无法加载?
答案 0 :(得分:3)
在 php.ini 中启用openssl,您可以通过 https 加载WSDL,这仅在启用openssl模块时有效。
答案 1 :(得分:-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);
}