簡體   English   中英

SOAP UI / SOAP UI PRO 中的內容類型應用程序/soap+msbin1

[英]Content-Type application/soap+msbin1 in SOAP UI / SOAP UI PRO

我有一個 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 不支持二進制編碼,並且在發現之后我有點卡住了。

我想知道是否有解決此問題的方法。 因此,是否有人設法使用 groovy 腳本、插件、庫或其他東西將二進制編碼集成到 SOAP UI PRO 中。

任何幫助是極大的贊賞。

application/soap+msbin1 是 WCF 的二進制編碼。 您正在發送帶有文本編碼的請求。 這就是為什么服務器端給出: Bad request

據我所知,SoapUI 不支持 application/soap+msbin1 編碼,也沒有可用的插件。

如果您需要使用 SoapUI 測試服務,您有兩個選擇:

  1. 將服務(服務器端)綁定更改為文本編碼(通過web.config 中的配置)。 請注意,一個服務可以有多個綁定,您可以使用文本編碼測試綁定,而 WCF 客戶端可以使用二進制 (application/soap+msbin1) 編碼。 無論如何都需要文本編碼來實現與非 WCF 客戶端(例如 SoapUI)的互操作性。 您可以查看Microsoft 文檔了解更多信息。

  2. 將您的soap 請求編碼為二進制數據並將其作為HTTP PUT 請求發送。 當然,您還需要解碼服務響應才能理解它。 這可能是一次性測試的一種方式,否則太麻煩了。 您可以使用 Groovy 腳本即時進行二進制編碼/解碼,以防您需要進行許多測試,但需要一些編程。

我絕對推薦第一個選項。

卡雷爾

什么對我有用

創建自定義綁定並確保使用

**<binaryMessageEncoding />**

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

並在您的端點中引用它。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM