Мыло SOAP_COMPRESSION_GZIP проверки, если это работает - PullRequest
4 голосов
/ 24 апреля 2010

Используя php5, я делаю запросы мыла к веб-сервису на основе wsdl, который не использует элемент Header.

Все, меня сейчас просили использовать сжатие gzip в моих запросах на мыло.

Итак, мой клиент теперь выглядит так:

$client = new SoapClient('xxxxx.wsdl', 
                         array('compression'=> 
                                     SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP, 
                                'trace' => 1, )
                          ); 

Я немного погуглил и обнаружил, что сайты говорят, что я должен также добавить уровень сжатия gzip (добавить | 9) после SOAP_COMPRESSION_GZIP, но когда я это делаю, я получаю ошибку мыла

"Содержание не разрешено в прологе"

Итак, я уронил трубку 9)

Вопрос: Так как я не эксперт по мылу, с вышеприведенной нотацией я не получаю никаких ошибок ни в исходящем xml-запросе, ни в запросе на возврат. Как узнать, работает ли мое сжатие gzip и подтверждается ли это с другой стороны?

1 Ответ

2 голосов
/ 18 ноября 2010

Вы можете проверить SoapClient :: __ getLastRequestHeaders и проверить заголовки содержимого и длины содержимого. Если запрос сжат, значение Content-Length должно быть меньше размера полезной нагрузки

Если веб-служба не работает по протоколу HTTPS, вы также можете запустить анализатор пакетов, например WireShark, захватить запрос и посмотреть, что именно было передано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...