我是新手,并一直在试图弄清楚如何使用PHP肥皂的论坛。
我很快就会脱掉头发!
花了数年时间试图弄清楚如何生成这个标题。
<AutenticationToken>
<Username>admin</Username>
<Password>123456</Password>
</AutenticationToken>
最终使用了这个:
$sh_param = "<AutenticationToken><Username>admin</Username><Password>123456</Password></AutenticationToken>";
$auth = new SoapVar($sh_param, XSD_ANYXML, null, null, null);
$headers = new SoapHeader($wdsl, 'AuthenticationToken', $auth);
它会像这样生成'ns' - &gt;当我使用这种方法时。
<ns2:AuthenticationToken>
<item>
<key>Username</key>
<value>admin</value>
</item>
<item>
<key>Password</key>
<value>123456</value>
</item>
</ns2:AuthenticationToken>
$sh_param = array(
'Username' => 'admin',
'Password' => '123456');
$headers = new SoapHeader($wsdl, 'AuthenticationToken', $sh_param);
现在我需要让它从<soap:Envelope
更改为<SOAP-ENV:Envelope
。
救命啊!
答案 0 :(得分:1)
类SOAPStruct
{
function __construct($user, $pass)
{
$this->Username = $user;
$this->Password = $pass;
}
}
//set username and password
$auth = new SOAPStruct("admin","123456");
//soap header object
$header = new SoapHeader("http://gateway.asiagategroup.com/","AutenticationToken",$auth,false);
$client->__setSoapHeaders($header);
希望这能解决您的问题