我尝试使用php连接到SOAP,这是我的代码:
$wsdl = 'http://websiteservicesvplus.mpfrance.fr/WebServicesVPlus.asmx?wsdl';
$soap = new SoapClient($wsdl, $options);
$data = $soap->CheckConnection(
array(
'ApiKey'=>'63156585fd3e7a69d6e66c67a92b095b0b8b1478bedffc9137ba9cf8c1dc5088',
'ApiTokenUserId'=>'5',
'ApiTokenTypeId'=>'8'
)
);
var_dump($data);
die;
在浏览器上运行后,我只收到此消息错误:
"致命错误:未捕获的SoapFault异常:[soap:Server]服务器无法处理请求。 --->你调用的对象是空的。在C:\ wamp \ www \ test \ webservices \ server1.php:23堆栈跟踪:#0 C:\ wamp \ www \ test \ webservices \ server1.php(23):SoapClient-> __ call(' CheckConnection',Array)#1 C:\ wamp \ www \ test \ webservices \ server1.php(23):SoapClient->在C:\ wamp \ www \ test中抛出CheckConnection(数组)#2 {main}第23行"
上的\ webservices \ server1.php
任何人都可以帮助我?
答案 0 :(得分:0)
首先,我将使用WSDL到php生成器来简化SOAP Web服务的使用(比如使用PackageGenerator项目),
其次,你错过了在:
中声明的SOAPHeader <wsdl:operation name="CheckConnection">
<soap12:operation soapAction="http://qpc.ebp.be/CheckConnection" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
<soap12:header message="tns:CheckConnectionAuthHeader" part="AuthHeader" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
。
再次使用之前的项目引用,它将在tutorial.php文件中定义,以便轻松发送。