1. 背景
postman は Web サービス インターフェイスをリクエストできますか? また、soap-UI ソフトウェアをインストールする必要がありますか?
いいえ、Web サービスのリクエストの本質は HTTP リクエストです。Postman を使用して Web サービスをリクエストできます。
2. POSTMAN を使用して Web サービス インターフェイスをリクエストする方法
難しいことではありません:
- リクエストされた URL を知るには
- POSTを使用するには
リクエストボディがあるのでGETは使ってはいけません PUTなどは試したことはありませんが、このWebサービスはとても古いもので、GET/POSTの時代にPUTを使うという発想があったのでしょうか? POSTを使用するだけです
- リクエスト本文にはパラメータが必要です
実際にリクエストされたインターフェイスにパラメータがない場合でも、常に SOAP メッセージにパッケージ化する必要があります。つまり、XML リクエスト パラメータがリクエスト本文にスローされます。
- 正しいコンテンツタイプを設定するには
ヘッダーには、Content-Type のヘッダーを設定するだけです。
3. 正しい Content-Type を設定する方法
Webサービスのバージョンによって、設定されるContent-Typeが若干異なります
設定が正しくない場合は、soopenv:VersionMismatch というエラー メッセージが表示され、トランスポート レベル情報が SOAP メッセージの名前空間 URI と一致しません。
リクエスト パラメータの宣言を確認するためのキーとなるバージョンは次のとおりです:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
<soap:Envelope xmlns:soap="http:/ /www.w3 .org/2003/05/soap-envelope”
SOAP 1.1 : http://schemas.xmlsoap.org/soap/envelope/
SOAP 1.2 : http://www.w3.org/2003/05/soap-envelope
1.1 content-type を使用する必要がありtext/xml
、エンコーディングも追加できます: text/xml; charset=utf-8
1.2 使用:application/soap+xml
またはエンコーディングも追加できます:application/soap+xml; charset=utf-8
間違った Content-Type が設定されている場合 (たとえば、text/xml が 1.2 に設定されている場合)、バージョンの不一致を明確に示すエラーが報告されます。
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:VersionMismatch</faultcode>
<faultstring>Transport level information does not match with SOAP Message namespace URI</faultstring>
<detail></detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>