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