当前位置:  开发笔记 > 编程语言 > 正文

如何将nuSOAP用于具有多个名称空间的消息

如何解决《如何将nuSOAP用于具有多个名称空间的消息》经验,为你挑选了1个好方法。

我正在尝试使用nuSOAP访问WebService(因为我在这里绑定了PHP4),它在消息中使用了多个命名空间.那可能吗?

示例请求消息如下所示:


  
  
    
      
        ..
        ..
      
      ..
    
  

我试着跟随:

$client = new nusoap_client("my.wsdl", true);
$params = array(
  'Person' => array(
    'FirstName'  => 'Thomas',
    ..
   ),
   'Attribute' => 'foo'
 );

 $result = $client->call('myOperation', $params, '', 'soapAction');

希望nuSOAP尝试将这些名称与正确的名称空间和节点相匹配.然后我尝试使用soapval()来生成元素及其命名空间 - 但是如果我调用一个操作,nuSOAP会创建以下请求:


  
    
  

因此在"匹配"阶段出现问题.



1> wilth..:

在尝试匹配之后,我发现了两种可能的解决方案:

1)不要使用WSDL创建nusoap_client和soapval()来创建消息.这样做的缺点是消息包含大量开销(命名空间在每个元素中定义).不太好.

2)不是依赖于参数的匹配,而是在xml中构造你的回复并将前缀的所有定义放在第一个元素中 - 例如

$params = "
      
        ..
        ..
      
      ..
    ";

仍然不是一个非常好的解决方案,但它的工作原理:-)

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有