通過 Postman 發送 SOAP 請求
一、概述
在本文中,我們將通過Postman發送一個 SOAP 請求。在此之前,我們會將 WSDL 從我們的 Country SOAP 服務導入 API 平台。
2. 設置
在我們可以在 Postman 中發出 SOAP 請求之前,我們需要一個正常工作的 SOAP 服務。運行我們的 Country SOAP 服務後,端點將位於http://localhost:8080/ws ,並且可以在http://localhost:8080/ws/countries.wsdl找到WSDL 。
3. 測試來自 Postman 的 SOAP 請求
使用 Postman 測試我們的端點有四個步驟。
3.1。導入 SOAP WSDL
從 Postman 8.4.0開始,我們可以將WSDL導入 Postman。我們可以直接導入我們國家的 Postman 收藏。以下是從 WSDL 創建新集合的幾個步驟。
首先,讓我們點擊Collections
:
接下來,讓我們通過提供 URL 來導入我們的 WSDL:
您也可以直接使用countries.wsdl WDSL 文件進行導入。
我們的服務是從 WSDL 中獲取的。我們將跳過高級設置並使用默認值導入:
導入後,我們應該可以看到我們所有的 SOAP 服務:
Postman 負責為每個請求設置正確的 URL、內容類型和標頭。
3.2.添加正文數據
接下來,讓我們通過在信封頭中添加Spain
作為國家name
和baeldung
命名空間來自定義我們的請求正文:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:gs="http://www.baeldung.com/springsoap/gen">
<soapenv:Header/>
<soapenv:Body>
<gs:getCountryRequest>
<gs:name>Spain</gs:name>
</gs:getCountryRequest>
</soapenv:Body>
</soapenv:Envelope>
3.3.設置請求標頭
通過導入我們的 WSDL,Postman 已經為我們設置了適當的標頭。 Content-Type
設置為text/xml
並適用於我們的請求。 text/xml
優於application/xml
。不明確支持text/xml
的 MIME 用戶代理(和 Web 用戶代理)會將其視為text/plain
,例如,將 XML MIME 實體顯示為純文本。
如果請求需要其他內容類型,我們可以取消選擇 Postman 自動添加的Content-Type
標頭。然後,我們在Key
字段中添加一個帶有Content-Type
的新行,在Value
字段中添加我們的新內容類型名稱。
如果服務返回狀態碼 500,我們應該添加一個額外的標頭“ SOAPAction:
#POST”
。
3.4.發送 SOAP 請求
最後,讓我們點擊Send
按鈕來調用 SOAP 服務。如果我們的調用成功,Postman 會在下方選項卡中顯示包含有關西班牙信息的響應:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:getCountryResponse xmlns:ns2="http://www.baeldung.com/springsoap/gen">
<ns2:country>
<ns2:name>Spain</ns2:name>
<ns2:population>46704314</ns2:population>
<ns2:capital>Madrid</ns2:capital>
<ns2:currency>EUR</ns2:currency>
</ns2:country>
</ns2:getCountryResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
這是 Postman 控制台中的輸出:
4。結論
在本文中,我們學習瞭如何通過 Postman 發送 SOAP 請求。我們首先看到瞭如何將 WSDL 導入 Postman。然後,我們成功地向我們的國家/地區服務發送了請求。與往常一樣,代碼可在 GitHub 上獲得。