Кодирование полезной нагрузки HTTP SOAP - PullRequest
1 голос
/ 16 марта 2012
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 ]

3 голосов
/ 16 марта 2012

Accept-Encoding - это заголовок запроса, и в вашем конкретном случае это означает, что эта сторона может только принять заархивированный контент.В свою очередь, заголовок ответа Content-Encoding показывает, действительно ли сообщение было отправлено.

1 голос
/ 16 марта 2012

Accept-Encoding - это заголовок http, который определяет кодировку, которую клиент примет в качестве ответа. Это не означает, что запрос был закодирован с использованием любого из этих значений, просто сервер может ответить им.

Подробнее см. Протокол передачи гипертекста - HTTP / 1.1 (RFC 2616, раздел 14.3)

0 голосов
/ 16 июля 2016

Accept-Encoding указывает, что клиент, отправляющий запрос, может принимать закодированные ответы, определенные как значение этого параметра.

Для запросов Gzip вам нужно установить Content-Encoding: gzip parameter. Вы можете сделать это с помощью SOAP-клиента, такого как SOAPUI, для тестирования.

Чтобы отправить Gzip-запрос с использованием SOAP UI.

Нажмите File --> Preferences.

Вкладка HTTP Settings будет выбрана по умолчанию. Вы заметите опцию 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)
...