空手道框架的 WSHttpBinding 问题

WSHttpBinding issue with Karate Framework

我们有使用 .NET 开发的 Web 服务,一些服务使用 basicHttpBinding,一些使用 wsHttpBinding

通过使用 Karate 框架,使用 basicHttpBinding 的服务可以正常执行,但不能 wsHttpBinding。获取响应代码 415.

通过在 SoapUI 端执行以下操作,使用 wsHttpBinding 的相同服务在另一个工具(如 SoapUI)中可以正常执行。

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:Actionwsa:To元素。