修改 PHP SoapClient 以使用 https 而不是 http 获取 xsd 模式

Modify PHP SoapClient to use https rather than http for getting xsd schema

我正在使用 SoapClient 连接到 WSDL 服务,WSDL 中的 schemaLocation 被错误地设置为 http:// 地址,我认为应该是 https:// 地址.

SOAP-ERROR: Parsing Schema: can't import schema from 'http://...

我可以使用 https://

通过 curl 获取架构

我无法修改 wsdl,所以我想弄清楚是否可以让 SoapClient 在获取架构时调用 https://,看看是否可以解决问题。

有什么建议吗?

不得不更改 WSDL 文件中的错误值的情况并不少见(不幸的是)。方法是从 SoapClient 派生新的 classes 并重载其方法。在您的情况下,创建新的 class 并在其构造函数中修复 WSDL:下载 WSDL 文件,在适当的位置将 http 更改为 https 并将其传递给基础 SoapClient 构造函数。