使用Web服务并使用SOAPCLIENT更改端点

时间:2012-02-13 16:38:57

标签: php soap wsdl soapui soap-client

我正在使用第三方Web服务,我正在使用soapUI来测试它。我被建议加载WSDL,保持unip,然后在执行对端点的调用之前更改SOAPUI中的端点。这种方法很好,并且表现得像我期望的那样。

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

$client->__setLocation($endpointURI);

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

尝试使用位置覆盖调用__soapCall:

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

我发现__setLocation在上述解决方法不起作用时无效。