使用SOAP和PHP获取身份验证

时间:2017-03-01 10:52:43

标签: php soap connection

我尝试使用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

任何人都可以帮助我?

1 个答案:

答案 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文件中定义,以便轻松发送。