SOAP - 加载本地 WSDL 文件
Posted
技术标签:
【中文标题】SOAP - 加载本地 WSDL 文件【英文标题】:SOAP - load local WSDL file 【发布时间】:2019-01-24 09:31:48 【问题描述】:如何将本地 WSDL 文件加载到SoapClient
?
$wsdl = __DIR__.'/wsdl.wsdl';
$this->client = new SoapClient($wsdl);
$xsd = __DIR__.'/wsdl/xsd/xmldsig-core-schema.xsd';
php 致命错误:SOAP-ERROR: Parsing WSDL: 找不到任何可用的 在 WSDL 中绑定服务。
从 WSDL 文件到 XSD 文件的相对路径:./xsd/xmldsig-core-schema.xsd
WSDL
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >
<wsdl:types>
</wsdl:definitions>
【问题讨论】:
您是否尝试在soap客户端的第二个参数中设置soap版本?只需添加一个数组作为第二个参数:new SoapClient($wsdl, [ 'soap_version' => SOAP_1_1 ]);
。当 SOAP_1_1 不起作用时,请尝试 SOAP_1_2。也许您的问题已经解决了。
【参考方案1】:
在您的 WSDL 文件中,
<soap:binding style="document" transport="https://schemas.xmlsoap.org/soap/https"/>
应该是
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
【讨论】:
HTTPS 无处不在 FTW :)以上是关于SOAP - 加载本地 WSDL 文件的主要内容,如果未能解决你的问题,请参考以下文章
PHP SoapClient over selfsigned certificate,SOAP-ERROR:解析WSDL:无法从'https://加载
使用php soapclient工具包显示访问netsuite wsdl无法加载wsdl