空手道框架的 WSHttpBinding 问题
WSHttpBinding issue with Karate Framework
我们有使用 .NET 开发的 Web 服务,一些服务使用 basicHttpBinding,一些使用 wsHttpBinding。
通过使用 Karate 框架,使用 basicHttpBinding 的服务可以正常执行,但不能 wsHttpBinding。获取响应代码 415.
通过在 SoapUI 端执行以下操作,使用 wsHttpBinding 的相同服务在另一个工具(如 SoapUI)中可以正常执行。
- 选中启用 WS-A 寻址
- 检查添加默认值 wsa:Action
- 检查添加默认值 wsa:To
basicHttpbinding 服务的内容类型是 'text/xml' 但 wsHttpbinding 服务的内容类型是 'application/soap+xml'.
是否有任何解决方案可以使用 空手道框架。
是的,有一个简单的解决方案,不要使用 * soap action 'foo'
语法,只需使用 * method post
。然后您就可以完全灵活地按照自己的方式调整请求。
特别是如果您使用 Postman 或 SoapUI,只需查看请求日志,您应该需要五分钟才能创建一个 Karate 等效项。希望对您有所帮助!
将 * soap action 'foo'
视为一种便利,它可以做 2 件额外的事情:
- 将
Content-Type
设置为 application/xml
- 将 HTTP 方法设置为
POST
其他都是'normal'空手道,在这种情况下你只需要确保XML有效负载包含额外的wsa:Action
和wsa:To
元素。
我们有使用 .NET 开发的 Web 服务,一些服务使用 basicHttpBinding,一些使用 wsHttpBinding。
通过使用 Karate 框架,使用 basicHttpBinding 的服务可以正常执行,但不能 wsHttpBinding。获取响应代码 415.
通过在 SoapUI 端执行以下操作,使用 wsHttpBinding 的相同服务在另一个工具(如 SoapUI)中可以正常执行。
- 选中启用 WS-A 寻址
- 检查添加默认值 wsa:Action
- 检查添加默认值 wsa:To
basicHttpbinding 服务的内容类型是 'text/xml' 但 wsHttpbinding 服务的内容类型是 'application/soap+xml'.
是否有任何解决方案可以使用 空手道框架。
是的,有一个简单的解决方案,不要使用 * soap action 'foo'
语法,只需使用 * method post
。然后您就可以完全灵活地按照自己的方式调整请求。
特别是如果您使用 Postman 或 SoapUI,只需查看请求日志,您应该需要五分钟才能创建一个 Karate 等效项。希望对您有所帮助!
将 * soap action 'foo'
视为一种便利,它可以做 2 件额外的事情:
- 将
Content-Type
设置为application/xml
- 将 HTTP 方法设置为
POST
其他都是'normal'空手道,在这种情况下你只需要确保XML有效负载包含额外的wsa:Action
和wsa:To
元素。