两个简单的PHP SOAP setHeaders问题

时间:2010-09-29 18:18:36

标签: php soap soap-client

以下是我用来生成请求标头的代码:

$headers = array(
                  new SOAPHEADER($this->_ns,'username',$this->_username,false, $this->_actor),
                  new SOAPHEADER($this->_ns,'password',$this->_password,false, $this->_actor));

$this->_client->__setSOAPHeaders($headers);

这会产生:

<SOAP-ENV:Header>
  <ns2:username SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next">test</ns2:username>
  <ns2:password SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next">test</ns2:password>
</SOAP-ENV:Header>

这一切都很好,花花公子。

以下是我的两个问题:

API文档要求用户名为 ns1:username ,密码为 ns2:password 。我的都是ns2。首先,ns1 | 2的意义是什么?我该如何解决这个问题?

第二个问题是,有没有办法通过只调用一次SOAPHEADER()来生成相同的结果?

1 个答案:

答案 0 :(得分:0)

  1. 如果没有看到声明,那么名称空间是否会产生影响并不容易知道服务,但通常接收服务只查找该特定命名空间中的标签。当你向他们两个添加$this->_ns时,他们当然会是一样的。你必须自己提供适当的命名空间(前缀无关紧要,uri确实如此)。
  2. 你为什么只想要一个电话?