HTTP SOAP payload Encoding


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 查看时,我看到接受编码是 gzip,deflate。这意味着 SOAP 有效负载在通过 http 发送之前被压缩?并在服务器端作为 HTTP 协议的一部分解压缩?

谢谢

Accept-Encoding是一个

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

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

有关更多详细信息,请参阅超文本传输协议 -- HTTP/1.1(RFC 2616 第 14.3 节(

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

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

使用 SOAP UI 发送 Gzip 请求。

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

最新更新