HTTP SOAP有效负载编码

时间:2012-03-16 15:14:23

标签: java http soap soapui

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。 这意味着SOAP有效负载在通过http发送之前被压缩了吗?并在服务器端解压缩作为HTTP协议的一部分?

由于

3 个答案:

答案 0 :(得分:3)

Accept-Encoding是一个请求标头,在您的特定情况下意味着该方只能接受压缩内容。反过来,响应标头Content-Encoding显示消息是否真的被gzip压缩。

答案 1 :(得分:1)

Accept-Encoding是一个http标头,用于定义客户端作为响应接受的编码。这并不意味着请求是使用这些值中的任何一个进行编码的,只是服务器可以使用它们进行响应。

有关详细信息,请参阅Hypertext Transfer Protocol -- HTTP/1.1 (RFC 2616 Section 14.3)

答案 2 :(得分:-1)

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

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

使用SOAP UI发送Gzip压缩请求。

点击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)