我正在使用第三方Web服务,我正在使用soapUI来测试它。我被建议加载WSDL,保持unip,然后在执行对端点的调用之前更改SOAPUI中的端点。这种方法很好,并且表现得像我期望的那样。
我现在正试图在PHP中模拟这个,但我在更改端点时遇到了问题。我正在将WSDL加载到SOAPCLIENT中,然后使用此命令更改端点:
$client->__setLocation($endpointURI);
然而,当我在修改位置/端点之后进行肥皂调用时,这并不像我期望的那样并且给我一个“500:内部服务器错误”响应。我确信所有其他参数都是正确的,并且想知道是否有人可以解决这个问题,并确认执行此“设置位置”cmd应该相当于在SOAPUI中手动更改端点。
任何想法/意见表示赞赏。
答案 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在上述解决方法不起作用时无效。