【问题标题】:PHP SOAP - Passing parameters with same namePHP SOAP - 传递具有相同名称的参数
【发布时间】:2018-04-19 20:30:05
【问题描述】:

我正在使用 php 和 SOAP 调用 API。 请求的某些部分如下所示:

<fin:Customer>
 <fin1:Address>
 <fin1:City>City</fin1:City>
 <fin1:Country>CA</fin1:Country>
 </fin1:Address>
<fin:Customer>   

数组很容易做到这一点:

'Customer' => array(
                'Address' => array (
                'City' => $City,
                'Country' => $Country,
                ),

但我的挑战在于这部分:

<fin:Criterions>
 <fin:Criterion name="VALX">17</fin:Criterion>
 <fin:Criterion name="VALOP">1</fin:Criterion>
 <fin:Criterion name="VALLP">10</fin:Criterion>
 <fin:Criterion name="TMS">3</fin:Criterion>

因为所有标签都具有相同的名称,并且它们还具有名称参数和值。 如何将其传递给 SOAP API? 可以使用数组吗?

提前致谢!

【问题讨论】:

  • 请将您的解决方案移至自己的答案。

标签: php arrays xml soap parameters


【解决方案1】:

构造请求、发送请求和处理响应的最简单方法是使用 WSDL 到 PHP 生成器,因为它通常会为您需要发送的每个参数生成每个类(除了响应对象和操作类)

知道了这一点,您将能够轻松了解如何传递这些“重复”标签,因为它肯定是您必须传递的对象数组,

试试PackageGenerator 项目应该可以正常工作,

【讨论】:

    【解决方案2】:

    解决方案:

    'Criterions' => array(
               'Criterion' => array(
                                array('name'=> 'VALX' , '_'=> '17' ), 
                                array('name'=> 'VALOP' , '_'=> '1' ),  
                                array('name'=> 'VALLP' , '_'=> '10' ),      
                                array('name'=> 'TMS' , '_'=> '3' )
                         ));
    

    如果其他值(例如 val、value 等)不起作用,请务必使用下划线 ('_')。

    可能会节省某人的时间和精力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2016-02-04
      相关资源
      最近更新 更多