2012-03-16 62 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是一个请求头和你的具体情况意味着,当事人仅仅是能够接受压缩的内容。反过来,响应标题Content-Encoding显示消息是否真的被压缩。

-1

Accept-Encoding表示发送请求的客户端可以接受定义为此参数值的编码响应。

对于Gzip请求,您必须设置Content-Encoding: gzip parameter。您可以使用SOAPUI等SOAP客户端进行测试。

使用SOAP UI发送Gzipped请求。

点击File --> Preferences

默认情况下会选择HTTP设置选项卡。您会注意到分块阈值选项。默认情况下,它被设置为空,以便为任何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)