我的SOAP請求的標題顯示爲奇怪的格式。我需要有一個頭,看起來像這樣:SOAP請求標題格式不正確(包含<item>,<key>和<value>)
<soap-env:header>
<wsse:security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:usernametoken wsu:id="UsernameToken-45">
<wsse:username>817221</wsse:username>
<wsse:password type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">1234</wsse:password>
</wsse:usernametoken>
</wsse:security>
</soap-env:header>
眼下,標題是這樣的:
<SOAP-ENV:Header>
<ns8:Security SOAP-ENV:mustUnderstand="1">
<item>
<key>UsernameToken</key>
<value>
<item>
<key>Username</key>
<value>817221</value>
</item>
<item>
<key>Password</key>
<value>
<item>
<key>_</key>
<value>1234</value>
</item>
<item>
<key>Type</key>
<value>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText</value>
</item>
</value>
</item>
</value>
</item>
</ns8:Security>
</SOAP-ENV:Header>
這是錯的。它包含和標籤。我讀過SOAP_ENC_OBJECT應該用於以正確的格式顯示它,所以我在我的代碼中嘗試過,但仍然無法正常工作。請參見下面的代碼:
$header = array(
'UsernameToken' => array(
'Username' => 817221,
'Password' => array(
'_' => 1234,
'Type' => 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText')));
$headerSoapVar = new SoapVar($header,SOAP_ENC_OBJECT);
$soapheader = new SoapHeader('http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd', "Security" , $header, true);
$client->__setSoapHeaders($soapheader);
任何幫助將不勝感激。謝謝!