2013-01-31 53 views
2

我用wsimport工具創建了一個工作得很好的soap客戶端。 現在我喜歡從服務器請求壓縮響應,因爲響應可能很大。如何請求gzip /壓縮的SOAP響應?

我不知道服務器是否能夠發送壓縮的內容。據我所知,我必須在請求中添加諸如「Accept-Encoding:gzip」之類的內容。

如何以及在哪裏做到這一點?

感謝

回答

1

如果您使用KSOAP罐子SOAP請求,那麼你需要設置你的頭請求您的壓縮方法的名稱。要設置標題,您可以使用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();