Как запросить сжатый / сжатый SOAP-ответ?

Я использовал инструмент wsimport для создания мыльного клиента, который работает очень хорошо. Теперь мне нравится запрашивать сжатый ответ с сервера, потому что ответы могут быть довольно большими.

Я не знаю, может ли сервер отправлять сжатый контент. Насколько я знаю, я должен добавить что-то вроде "Accept-Encoding: gzip" в запросе.

Как и где мне это сделать?

Спасибо

1 ответ

Если вы используете ksoap jar для запроса мыла, тогда вам нужно указать имя метода сжатия в запросе заголовка. Для установки заголовка вы можете использовать для этого класс HeaderProperty. Вот простой пример отправки запроса на мыло.

    //Create Soap Object & their envelop
SoapObject soapObject=new SoapObject(NameSpace, methodName);
SoapSerializationEnvelope envelope=new  SoapSerializationEnvelope(SoapSerializationEnvelope.VER11);
//Add request params into object
soapObject.addProperty("paramsName", "paramsValue");
//set object into envelop
envelope.setOutputSoapObject(soapObject);
//Set header property which we like, here I dont want to set any compression method so I set "none". For ksoap default compression method is "gzip".
List<HeaderProperty> headers=new ArrayList<HeaderProperty>();
HeaderProperty headerProperty=new HeaderProperty("Accept-Encoding", "none");
headers.add(headerProperty);

//Create transport object.
HttpTransportSE httpTransportSE=new HttpTransportSE(url);
//call service
httpTransportSE.call(SOAP_ACTION, envelope,headers);
//recive response
JSONResponse=(String)envelope.getResponse();
Другие вопросы по тегам