【问题标题】:Consuming a webservice and changing an endpoint with SOAPCLIENT使用 SOAPCLIENT 使用 Web 服务并更改端点
【发布时间】:2012-03-05 01:50:05
【问题描述】:

我正在使用第三方网络服务,并且正在使用soapUI 对其进行测试。有人建议我加载 WSDL,保持不变,然后在执行对端点的调用之前更改 SOAPUI 中的端点。这很好用,并且表现得和我预期的一样。

我现在正尝试在 PHP 中模拟这一点,但在更改端点时遇到了问题。我将 WSDL 加载到 SOAPCLIENT 中,然后使用此命令更改端点:

$client->__setLocation($endpointURI);

但是,这并不像我期望的那样,当我在修改位置/端点后去进行肥皂调用时,它会给我一个“500:内部服务器错误”响应。我确定所有其他参数都是正确的,并且想知道是否有人可以阐明这个问题并确认执行此“设置位置”cmd 应该等同于在 SOAPUI 中手动更改端点。

任何想法/意见表示赞赏。

【问题讨论】:

    标签: php soap wsdl soapui soap-client


    【解决方案1】:

    在实例化 SoapClient 时,尝试使用新端点添加一个名为“location”的数组键。

    $options = array('login' => 'x', 'password' => 'y', 'location' => $endpointURI);
    $client = new SoapClient($address, $options);
    

    【讨论】:

      【解决方案2】:

      尝试使用其中的位置覆盖调用 __soapCall:

      $result = $this->soap_client->__soapCall('whatever', ['location' => $file_location]);
      

      我发现 __setLocation 不起作用,而上述解决方法起作用。

      【讨论】:

        猜你喜欢
        • 2010-09-06
        • 1970-01-01
        • 2013-07-21
        • 1970-01-01
        • 2010-10-10
        • 2013-07-06
        • 2019-07-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多