Web Services PHP SOAP -忽略强制模式变量

k2arahey  于 2023-10-24  发布在  PHP
关注(0)|答案(1)|浏览(162)

有没有一种方法可以忽略PHPsoap客户端使用WSDL模式的模式中的强制变量?
我们开发了一个应用程序,它可以与一个已经工作了7年多的SOAP端点进行通信。最近,SOAP端点提供者升级了他们的API,并为我们提供了一个新的端点和WSDL。
对于一个特定的调用,他们的文档建议有几个变量是可选的,但是在他们的WSDL中引用的模式声明这些变量不是可选的。
虽然您可以使用SOAPUI(忽略模式)发送一些不带这些变量的XML,并且它可以工作,但当您尝试形成一个不带这些变量的对象传递给PHP soap客户端时,它会拒绝并抛出一个异常,说它们是强制性的。
端点提供者拒绝更新它们的Schema,而且我们似乎没有办法使用PHPsoap客户端进行调用。

emeijp43

emeijp431#

托管您自己的WSDL文件。
您可以在本地保存服务的WSDL,对它进行所需的更改,并让PHP SOAP客户机在调用原始Web服务时使用此WSDL。
如果Web服务接受具有较少参数的调用,那么这是绕过WSDL中强制参数的一种方法。
不过请注意,这可能只是暂时的。看起来他们让Web服务的契约更加严格,但他们没有对服务实现进行更改。这可能会在某个时候完成。如果他们这样做,那么服务本身将强制执行参数,您将无法解决这个问题。在这一点上,您需要发送服务期望的所有内容。

相关问题