【问题标题】:How to pass WSDL functions in this PHP program using SOAP如何使用 SOAP 在这个 PHP 程序中传递 WSDL 函数
【发布时间】:2013-07-19 16:41:00
【问题描述】:

我知道我需要将函数的参数作为数组的索引传递。我也明白参数的值是数组索引的对应值。但我无法让我的功能发挥作用。我将变量传递给 WSDL 中的函数,但我什么也没得到。

这是我的 PHP 代码:

try{
    $soap_client = new SoapClient("https://foo.example.com:8443/current/bar?wsdl");
    $log_in = array(
        "iwsUsername"    => "username", 
        "iwsSecretKey"   => "secretKey",
        "caller"         => "JohnDoe", 
        "callerPassword" => "password"
    );
    //passing values into the function parameters above
    $request = $soap_client->authenticatedPing($log_in);
    echo $request->authenticatedPing;
} catch(SoapFault $exception){
    echo '?????';
}

出于安全目的,这些显然是虚假值,但你明白了。

这里是这个函数的 WSDL:

 <wsdl:operation name="authenticatedPing">
   <soap12:operation soapAction="" style="rpc"/>
   <wsdl:input name="authenticatedPing">
     <soap12:body namespace="http://www.example.com" use="literal"/>
   </wsdl:input>
   <wsdl:output name="authenticatedPingResponse">
     <soap12:body namespace="http://www.example.com" use="literal"/>
   </wsdl:output>

我做错了什么?

【问题讨论】:

标签: php xml soap wsdl


【解决方案1】:

以下只是一些 cmets - 不是答案 - 以区分您在问题中得出的结论,因此(因此,仅指出一些弱点并不完全有帮助,我知道我们没有SOAP 在 Stackoverflow 上很好地涵盖了这一点,但我们至少以某种方式涵盖了它)

我明白我需要将函数的参数作为数组的索引传递。

不,实际上并非如此。在数组旁边,您还可以解析对象甚至元对象。数组表示法只是为了简化其中的一些,它遵循一些晦涩的规则,这些规则没有真正清楚地记录

举个例子:请为您的数组语句提供参考。提供一个链接,其中记录了必须按照您的方式创建数组的时间、方式和原因。

我也明白参数的值是数组索引的对应值。

同样,即使这种说法也没有太大的错误,您没有概述在这种情况下的原因以及遵循哪些规则。

我将变量传递给 WSDL 中的函数,但我什么也没得到。

你得到东西。了解更多究竟是什么。例如什么是异常消息。

【讨论】:

    【解决方案2】:

    非 WSDL 表单有效。谢谢你们的cmets

    $client = new SoapClient(
        null,
        array(
            'location' => "https://************.com:*******/*****-=/iws",
            'soap_version' => SOAP_1_2,
            'uri' =>'http://www.*******.com',
            'style' => SOAP_RPC,
            'use' => SOAP_LITERAL
        )
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多