尝试调用以下Web服务,这是在soap标头中传递令牌的正确方法,它返回了不正确的令牌响应,但是当我使用soap ui时令牌是正确的吗?
$soapclient = new SoapClient('http://api.fm-
web.co.za/webservices/AssetDataWebSvc/DriverProcessesWS.asmx?WSDL');
$token = array('Token'=>'XXXXXX');
$header = new SoapHeader('ass','soapenv',$token,false);
$response = $soapclient->__soapCall('GetDriverList',array(''),NULL,$header);
var_dump($response);
在经历了一些麻烦之后,这很有效。
$soapclient = new SoapClient('http://api.fm-
web.co.za/webservices/AssetDataWebSvc/DriverProcessesWS.asmx?WSDL');
//$token = array('Token'=>'XXXXXX');
$header = new
SoapHeader('http://www.omnibridge.com/SDKWebServices/AssetData',
'TokenHeader',array('Token'=>'XXXXXX'),false);
//$DriverID = 3;
$params = array('DriverID'=>'3');
$response = $soapclient-
>__soapCall('GetDriver',array($params),NULL,$header);
var_dump($response);
答案 0 :(得分:0)
SoapHeader定义可能很棘手,尤其是如果您不熟悉SOAP。
我的建议是使用WSDL到PHP生成器,它会为你提供一个SDK来设置任何SoapHeader,特别是这个SoapHeader。
您应该尝试PackageGenerator项目,该项目应该为您提供必须创建的ServiceType \ Get实例中的SoapHeader方法。查看生成的tutorial.php
文件。