代码之家  ›  专栏  ›  技术社区  ›  doremi

两个简单的PHP SOAP setHeaders问题

  •  0
  • doremi  · 技术社区  · 14 年前

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

    $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:用户名 ns2:密码 . 我的都是ns2。首先,ns1 | 2的意义是什么?我怎样才能解决这个问题?

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

    1 回复  |  直到 12 年前
        1
  •  0
  •   Wrikken    14 年前
    1. 在没有看到声明和不了解服务的情况下,很难说名称空间是否有影响,但通常接收服务只查找特定名称空间中的标记。正如你所说 $this->_ns 对他们两个来说,当然是一样的。您必须自己提供正确的名称空间(前缀不重要,uri重要)。