首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP设置SoapHeader格式

使用PHP设置SoapHeader格式
EN

Stack Overflow用户
提问于 2012-10-23 17:13:26
回答 1查看 948关注 0票数 0

我使用以下代码通过PHP创建SOAPHEADER

代码语言:javascript
复制
// Instantiate the client.
$client = new SoapClient($wsdl_url, array('trace' => 1));
// Pass along login information
$soap_header = new SoapHeader(
$api_url,
'APICredentials',
array(
    'DeveloperKey' => $developerKey,
    'Password' => $password
    )
);
$client->__setSoapHeaders($soap_header);

它创造了这个

代码语言:javascript
复制
<SOAP-ENV:Header>
    <ns2:APICredentials>
       <item>
         <key>DeveloperKey</key>
         <value>********</value>
       </item>
       <item>
         <key>Password</key>
         <value>********</value>
       </item>
    </ns2:APICredentials>
</SOAP-ENV:Header>

如何更改PHP代码以创建以下头文件?

代码语言:javascript
复制
<soapenv:Header> 
<web:APICredentials> 
<web:DeveloperKey>...</web:DeveloperKey> 
<web:Password>...</web:Password> 
</web:APICredentials> 
</soapenv:Header> 
EN

回答 1

Stack Overflow用户

发布于 2012-10-23 17:48:45

您可以使用$soap_client->__setSoapHeaders($header)完全手动设置;

代码语言:javascript
复制
Required SOAP Header: 

<soap:Header> 
    <RequestorCredentials xmlns="http://namespace.example.com/"> 
      <Token>string</Token> 
      <Version>string</Version> 
      <MerchantID>string</MerchantID> 
      <UserCredentials> 
        <UserID>string</UserID> 
        <Password>string</Password> 
      </UserCredentials> 
    </RequestorCredentials> 
</soap:Header> 

Corresponding PHP code: 

<?php 

$ns = 'http://namespace.example.com/'; //Namespace of the WS. 

//Body of the Soap Header. 
$headerbody = array('Token' => $someToken, 
                    'Version' => $someVersion, 
                    'MerchantID'=>$someMerchantId, 
                      'UserCredentials'=>array('UserID'=>$UserID, 
                                             'Password'=>$Pwd)); 

//Create Soap Header.        
$header = new SOAPHeader($ns, 'RequestorCredentials', $headerbody);        

//set the Headers of Soap Client. 
$soap_client->__setSoapHeaders($header); 

来源:http://php.net/manual/en/soapclient.setsoapheaders.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13027086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档