postman は Web サービス インターフェイスを要求できますが、トランスポート レベルの情報が SOAP メッセージの名前空間 URI と一致しません

1. 背景

postman は Web サービス インターフェイスをリクエストできますか? また、soap-UI ソフトウェアをインストールする必要がありますか?
いいえ、Web サービスのリクエストの本質は HTTP リクエストです。Postman を使用して Web サービスをリクエストできます。

2. POSTMAN を使用して Web サービス インターフェイスをリクエストする方法

難しいことではありません:

  1. リクエストされた URL を知るには
  2. POSTを使用するには

リクエストボディがあるのでGETは使ってはいけません PUTなどは試したことはありませんが、このWebサービスはとても古いもので、GET/POSTの時代にPUTを使うという発想があったのでしょうか? POSTを使用するだけです

  1. リクエスト本文にはパラメータが必要です

実際にリクエストされたインターフェイスにパラメータがない場合でも、常に SOAP メッセージにパッケージ化する必要があります。つまり、XML リクエスト パラメータがリクエスト本文にスローされます。

  1. 正しいコンテンツタイプを設定するには

ヘッダーには、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>

おすすめ

転載: blog.csdn.net/w8y56f/article/details/131342702