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

发布于 2025-01-05 06:41:44 字数 401 浏览 1 评论 0原文

我正在使用第三方网络服务,并使用soapUI 来测试它。建议我加载 WSDL,保持不变,然后在执行对端点的调用之前更改 SOAPUI 中的端点。这工作正常并且表现如我所期望的那样。

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

$client->__setLocation($endpointURI);

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

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

I am consuming a third-party webservice and I'm using soapUI to test it. I was advised to load the WSDL, leave it untouchted, then change the endpoint in SOAPUI before executing the calls to the endpoints. This works fine and is behaving as I would expect it to.

I'm now trying to emulate this in PHP but I'm having problems changing the endpoint. I'm loading the WSDL into SOAPCLIENT and then using this command to change the endpoint:

$client->__setLocation($endpointURI);

However this is not acting like I'd expect it to and is giving me a "500:Internal Server Error" response when I the go to make a soap call after modifying the location/endpoint. I'm certain that all other parameters are correct and was wondering if anyone could shed some light on the issue and confirm that doing this 'set location' cmd should be the equivalent of changing the endpoint manually in SOAPUI.

Any ideas/opinions appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧故 2025-01-12 06:41:44

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

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

While instantiating SoapClient try to add an array key named 'location' with the new endpoint.

$options = array('login' => 'x', 'password' => 'y', 'location' => $endpointURI);
$client = new SoapClient($address, $options);
他夏了夏天 2025-01-12 06:41:44

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

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

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

Try calling __soapCall with the location override in there:

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

I'm finding __setLocation is not working while the above workaround does.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文