php - 我如何使用这个 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'
谢谢
解决方案
推荐阅读
- javascript - 创建像 shopify 这样的变体表
- python - 将索引列表转换为二维 numpy 数组的最快方法
- laravel - 在局域网上访问 Laravel
- ios - 我们如何将具有库的 sdk/Framework 共享给其他项目?
- flutter - http请求的单例类
- php - Laravel 5.4 和我的 PHP 版本是 7.3 抛出 count() 错误:参数必须是数组或对象
- ios - iOS 10 - 如何创建自定义导航栏大标题
- flutter - 为单独的卡片添加不同的 onTap 页面
- amazon-web-services - Terraform 两个 PostgreSQL 数据库设置
- c++ - 如何使用 ATL/MSOLEDBSQL 启用连接资源池?