2012-03-16 13 views
1
POST http://xxx/test HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset=UTF-8 
SOAPAction: "" 
User-Agent: Jakarta Commons-HttpClient/3.1 
Host: xxx:1041 
Content-Length: 1911 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:prop="http://..."> 
    <soapenv:Header> 
    ..... 
    </soapenv:Header> 
    <soapenv:Body> 
     ..... 
    </soapenv:Body> 
</soapenv:Envelope> 

私はSOAP UIで見ると、Accept-Encodingはgzip、deflateです。 これは、httpでSOAPペイロードが圧縮されてから送信されることを意味しますか?サーバー側でHTTPプロトコルの一部として解凍されていますか?HTTP SOAPペイロードエンコーディング

おかげ

答えて

3

Accept-Encodingは、リクエストヘッダであり、あなたの特定のケースでは当事者がちょうどzip形式のコンテンツを受け入れることができることを、意味参照してください。次に、レスポンスヘッダContent-Encodingは、メッセージが実際にgzippedされたかどうかを示します。

1

Accept-Encodingクライアントが応答として受け入れるエンコーディングを定義するHTTPヘッダーです。これは、サーバーが応答できるだけの値を使用して要求がエンコードされたことを意味するものではありません。さらに詳細については

Hypertext Transfer Protocol -- HTTP/1.1 (RFC 2616 Section 14.3)

-1

Accept-Encodingは、要求を送信するクライアントが、このパラメータの値として定義されたエンコードされた応答を受け入れることを示します。

Gzipリクエストには、Content-Encoding: gzip parameterを設定する必要があります。これは、テストのためにSOAPUIのようなSOAPクライアントを使用して行うことができます。

SOAP UIを使用してGzippedリクエストを送信する。

File --> Preferencesをクリックします。

[HTTP設定]タブがデフォルトで選択されます。 Chunking Thresholdオプションが表示されます。デフォルトでは、これは空に設定されているため、任意のHTTP要求に対してチャンクが無効になります。

このフィールドを負でない整数値(たとえば、 - 1)で更新し、リクエストを再送信します。以下に示すように、エンコードされたリクエストに気づくでしょう。

POST http://<.....>n HTTP/1.1 
Content-Encoding: gzip 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset=UTF-8 
SOAPAction: "" 
Content-Length: 206 
Host: amazona-bs4anhc:4400 
Connection: Keep-Alive 
User-Agent: Apache-HttpClient/4.1.1 (java 1.5) 
関連する問題