0

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

$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() 来生成相同的结果?

4

1 回答 1

0
  1. 在没有看到声明和知道服务的情况下很难说命名空间是否有所作为,但通常接收服务只查找该特定命名空间中的标签。当您添加$this->_ns到它们两个时,它们当然是相同的。您必须自己提供正确的命名空间(前缀无关紧要,uri 确实如此)。
  2. 为什么你只想要 1 个电话?
于 2010-09-29T18:26:12.400 回答