SOAP UI / SOAP UI PRO中的Content-Type application / soap + msbin1

时间:2017-02-27 10:42:50

标签: web-services api wcf soapui web-api-testing

我有一个WCF服务,我正在尝试将它与SOAP UI PRO一起使用。在第一次执行时,我收到了以下响应:

  

HTTP / 1.1 415无法处理邮件,因为内容类型' application / soap + xml; charset = UTF-8;'不是预期的类型' application / soap + msbin1'。

我发现我应该添加 Content-Type 标头,我这样做了(即 Content-Type application / soap + msbin1 )。但是,错误现在演变为:

  

HTTP / 1.1 400错误请求

我了解到SOAP UI / SOAP UI PRO / READY API中不支持 Binary-Encoding ,而且在发现之后我有点卡住了。

我想知道这个问题是否有解决方法。因此,是否有人设法使用groovy脚本,插件,库或其他不同的东西来在SOAP UI PRO中集成二进制编码。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

application / soap + msbin1是WCF的二进制编码。您正在使用文本编码发送请求。这就是服务器端提供:错误请求

的原因

据我所知,SoapUI不支持application / soap + msbin1编码,也没有可用的插件。

如果您需要使用SoapUI测试服务,您有两个选择:

  1. 将服务(服务器端)绑定更改为文本编码(通过 web.config 中的配置)。请注意,服务可以有多个绑定,您可以使用文本编码测试绑定,而WCF客户端可以使用二进制(application / soap + msbin1)编码。无论如何,文本编码都需要实现与非WCF客户端(例如SoapUI)的互操作性。您可以查看Microsoft documentation了解更多信息。

  2. 将您的soap请求编码为二进制数据,并将其作为HTTP PUT请求发送。当然,您还需要解码服务响应才能理解它。这可能是一次性测试的一种方式,否则它太麻烦了。您可以使用Groovy脚本动态进行二进制编码/解码,以防您需要进行多次测试,但需要进行一些编程。

  3. 我绝对推荐第一个选项。

    卡雷尔

答案 1 :(得分:0)

什么对我有用

创建自定义绑定并确保使用

**<binaryMessageEncoding />**

<bindings>
  <customBinding>
    <binding name="MyCustomBinding">
       <binaryMessageEncoding />
    </binding>

并在您的端点中引用它。

 <endpoint address="https://..." binding="customBinding" bindingConfiguration="MyCustomBinding" contract="..." name="..." />