在soap header php中传递令牌

时间:2018-02-05 09:02:06

标签: php web-services soap

尝试调用以下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);

1 个答案:

答案 0 :(得分:0)

SoapHeader定义可能很棘手,尤其是如果您不熟悉SOAP。

我的建议是使用WSDL到PHP生成器,它会为你提供一个SDK来设置任何SoapHeader,特别是这个SoapHeader。

您应该尝试PackageGenerator项目,该项目应该为您提供必须创建的ServiceType \ Get实例中的SoapHeader方法。查看生成的tutorial.php文件。