SoapHeader クラス
(PHP 5, PHP 7, PHP 8)
はじめに
SOAP ヘッダをあらわします。
クラス概要
プロパティ
- actor
-
- data
-
- mustUnderstand
-
- name
-
- namespace
-
目次
- SoapHeader::__construct — SoapHeader コンストラクタ
+add a note
User Contributed Notes 4 notes
mixmaster1413 at gmail dot com ¶
1 year ago
Something I came across that I feel should be noted here is if you come across the error "cannot be processed at the receiver, due to an addressfilter mismatch at the endpointdispatcher. check that the sender and receiver's endpointaddresses agree." and you are absolutely sure your protocols and the service URL matches, send 'To' SoapHeader.
$soapHeaders = array(
new \SoapHeader('http://www.w3.org/2005/08/addressing', 'Action', 'your-action', true),
new \SoapHeader('http://www.w3.org/2005/08/addressing', 'To', 'your-service-endpoint-url')
);
$soapClient->__setSoapHeaders($soapHeaders);
john at jtresponse dot co dot uk ¶
12 years ago
None of the examples really do it for me.
Note: you should NOT need to hard-code any XML.
Here is an example of creating a nested header and including a parameter.
$client = new SoapClient(WSDL,array());
$auth = array(
'UserName'=>'USERNAME',
'Password'=>'PASSWORD',
'SystemId'=> array('_'=>'DATA','Param'=>'PARAM'),
);
$header = new SoapHeader('NAMESPACE','Auth',$auth,false);
$client->__setSoapHeaders($header);
Gives the following header XML:
<SOAP-ENV:Header>
<ns1:Auth>
<ns1:SystemId Param="PARAM">DATA</ns1:SystemId>
<ns1:UserName>USERNAME</ns1:UserName>
<ns1:Password>PASSWORD</ns1:Password>
</ns1:Auth>
</SOAP-ENV:Header>
ericvaneldik at gmail dot com ¶
5 years ago
If you want to create an soap header wihtout namespace and without an item key value setup, you can use SoapVar
To get this:
<SOAP-ENV:Header>
<IdentityHeader>
<SessionID>123456789</SessionID>
</IdentityHeader>
</SOAP-ENV:Header>
you can use this php code:
<?php
$headerVar = new SoapVar('<IdentityHeader><SessionID>123456789</SessionID></IdentityHeader>',
XSD_ANYXML);
$header = new SoapHeader('http://tempuri.org/','RequestParams',
$headerVar);
?>
abdul dot rashid at paytabs dot co ¶
8 years ago
Just to add some note regarding his john at jtresponse dot co dot uk
In PHP you can try following code to avoid the <item><key/>
$Auth = new stdClass();
$Auth->SystemId = "DATA";
$Auth->UserName = "USERNAME";
$Auth->Password = "PASSWORD";
$header = new SoapHeader('NAMESPACE','Auth',$Auth,false);
$soapClient->__setSoapHeaders($header);
<SOAP-ENV:Header>
<ns1:Auth>
<ns1:SystemId>DATA</ns1:SystemId>
<ns1:UserName>USERNAME</ns1:UserName>
<ns1:Password>PASSWORD</ns1:Password>
</ns1:Auth>
</SOAP-ENV:Header>
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google