我试图制作一个看起来像这样的肥皂标题:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<a-user xmlns="a">testName</a-user>
<a-pass xmlns="a">testPassword</a-pass>
</s:Header>
<s:Body>
...
</s:Body>
</s:Envelope>
我对肥皂很陌生,所以我很确定我只是不明白我应该为SoapHeader构造函数的参数添加什么,这就是我和#39;我正在尝试并且它一直无法进行身份验证:
$authHeader = new SoapHeader("http://schemas.xmlsoap.org/soap/envelope/", "Envelope", array("Header" => array("a-user" => "testName", "a-pass" => "testPassword")));
有人可以解释我应该如何将xml中的标题翻译成php soapheader吗?
编辑:是的,agunn,我使用真实的用户名并通过,我得到了一个SoapFault异常说&#34;供应商未经授权!&#34;当我打肥皂时。
这里包括肥皂呼叫部分:
$this->client->__setSoapHeaders($authHeader);
$response = $this->client->__soapCall("Foo", $params);
答案 0 :(得分:0)
$authHeader = new SoapHeader("http://schemas.xmlsoap.org/soap/envelope/", "Envelope", array("Header" => array("a-user" => "testName", "a-pass" => "testPassword")));
根据SoapClient规范你应该尝试这样
$this->client->__setSoapHeaders(array($authHeader));
$response = $this->client->__soapCall("Foo", $params);