php 使用SOAPCLIENT使用Web服务和更改端点

ltskdhd1  于 2023-01-24  发布在  PHP
关注(0)|答案(2)|浏览(147)

我正在使用第三方Web服务,并使用soapUI对其进行测试。我被建议加载WSDL,保持其不受影响,然后在执行对端点的调用之前在SOAPUI中更改端点。这样做工作正常,其行为符合我的预期。
我现在尝试在PHP中模拟这个过程,但是在修改端点时遇到了问题,我将WSDL加载到SOAPCLIENT中,然后使用以下命令修改端点:

$client->__setLocation($endpointURI);

然而,这并不像我所期望的那样,当我在修改位置/端点后进行SOAP调用时,它给了我一个“500:内部服务器错误”的响应。我确信所有其他参数都是正确的,我想知道是否有人可以解释这个问题,并确认执行这个“设置位置”命令应该等同于在SOAPUI中手动更改端点。
任何想法/意见都很感谢。

mfuanj7w

mfuanj7w1#

示例化SoapClient时,尝试添加一个名为“location”的数组键,并添加新的终结点。

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

mzmfm0qo2#

尝试调用__soapCall并在其中覆盖位置:

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

我发现__setLocation不起作用,而上述变通方案起作用。

相关问题