PHP SOAP - 忽略强制架构变量

问题描述 投票:0回答:1

有没有一种方法可以使用 WSDL 模式忽略 PHP Soap 客户端模式中的强制变量?

我们开发了一个与 SOAP 端点通信的应用程序,该应用程序已经运行了 7 年多。最近,SOAP 端点提供商升级了他们的 API,并为我们提供了新的端点和 WSDL。

对于特定调用,他们的文档建议有几个变量是可选的,但是 WSDL 中引用的模式指出这些变量不是可选的。

虽然您可以使用 SOAPUI(忽略架构)发送一些没有这些变量的 XML 并且它可以工作,但当您尝试形成一个对象传递到没有这些变量的 PHP Soap 客户端时,它会拒绝并抛出异常,说明它们是强制性的.

端点提供商拒绝更新其架构,并且我们似乎没有办法使用 PHP Soap 客户端进行调用。

php web-services soap wsdl
1个回答
0
投票

托管您自己的 WSDL 文件。

您可以在本地保存服务的 WSDL,对其进行所需的更改,并让 PHP SOAP 客户端在调用原始 Web 服务时使用此 WSDL。

如果 Web 服务接受参数较少的调用,那么这是绕过 WSDL 中强制参数的一种方法。

但请注意,这可能只是暂时的。他们似乎对网络服务的合同进行了更多限制,但他们没有对服务实现进行更改。这可能会在某个时候完成。如果他们这样做,那么服务本身将强制执行这些参数,并且您将无法解决这个问题。那时,您需要发送服务期望的所有内容。

© www.soinside.com 2019 - 2024. All rights reserved.