加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

SoapHeader子节点中的PHP命名空间

发布时间:2020-12-13 16:26:14 所属栏目:PHP教程 来源:网络整理
导读:PHP SoapClient标题.在子节点中获取命名空间时遇到问题.这是我使用的代码: $security = new stdClass;$security-UsernameToken-Password = 'MyPassword';$security-UsernameToken-Username = 'MyUsername';$header[] = new SOAPHeader('http://docs.oasis-o
PHP SoapClient标题.在子节点中获取命名空间时遇到问题.这是我使用的代码:
$security = new stdClass;
$security->UsernameToken->Password = 'MyPassword';
$security->UsernameToken->Username = 'MyUsername';
$header[] = new SOAPHeader('http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd','Security',$security);
$client->__setSoapHeaders($header);

这是它生成的XML:

<ns2:Security>
  <UsernameToken>
    <Password>MyPassword</Password>
    <Username>MyUsername</Username>
  </UsernameToken>
</ns2:Security>

这是我想要生成的XML:

<ns2:Security>
  <ns2:UsernameToken>
    <ns2:Password>MyPassword</ns2:Password>
    <ns2:Username>MyUsername</ns2:Username>
  </ns2:UsernameToken>
</ns2:Security>

我需要将命名空间引用到UsernameToken,Password和Username节点.任何帮助将非常感激.

谢谢.

弄清楚了.我使用了嵌套的SoapVars和数组.
$ns_s = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';
$node1 = new SoapVar('MyUsername',XSD_STRING,null,'Username',$ns_s);
$node2 = new SoapVar('MyPassword','Password',$ns_s);
$token = new SoapVar(array($node1,$node2),SOAP_ENC_OBJECT,'UsernameToken',$ns_s);
$security = new SoapVar(array($token),$ns_s);
$header[] = new SOAPHeader($ns_s,$security,false);

这花了太多的努力和思考

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读