首页 > 解决方案 > 我如何使用这个 API,它在 wsdl 中有一个不正确的端口?

问题描述

我正在使用的 API 的行为与我预期的不同。

我正在使用 PHP 和 soap 客户端使用这个 WSDL 向 API 发出请求:

https://product.companyurl.co.uk:9450/Product.svc?wsdl

无论我使用的是 soapui 还是我可以在堆栈溢出时找到的任何 PHP soap 客户端配置,这都不起作用并导致错误。

但是,如果我删除端口并使用:

https://product.companyurl.co.uk/Product.svc?wsdl

我可以在我的浏览器中查看 WSDL,它似乎可以工作。

问题是 WSDL 引用了其中的 18 个 .xsd 文件,这些文件中也有相同的端口号:

https://product.companyurl.co.uk:9450/Product.svc?xsd=xsd0

同样,此处的端口会阻止 url 在浏览器中工作,并导致 soapui 或 PHP soap 客户端出错。

我在本地下载了 WSDL,并在 .xsd 文件的 WSDL 和本地副本中替换了所有出现的 :9450。

这在soap ui中工作并带回了所有方法并且似乎显示出希望。

但是,我无法使用更改后的 api 版本运行任何方法。

我假设我在这里出了点问题。

我的问题的一个简单版本是:为什么他们将这个 :9450 添加到似乎破坏它的 WSDL 中,我可以覆盖它连接到 API 以便我可以发出请求吗?

作为参考,它带回的php错误是:

致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR: Parsing Schema: can't import schema from 'https://product.companyurl.co.uk:9450/Product.svc?xsd=xsd0'

谢谢

标签: phpsoap

解决方案


推荐阅读