2013-01-31 2 views
2

나는 wsimport 도구를 사용하여 잘 작동하는 비누 클라이언트를 만들었습니다. 이제 응답이 상당히 클 수 있기 때문에 서버에서 압축 된 응답을 요청하고 싶습니다.gzip으로 압축 된 SOAP 응답을 요청하는 방법은 무엇입니까?

서버에서 압축 된 콘텐츠를 보낼 수 있는지 여부를 알 수 없습니다. 내가 아는 한, 요청에 "Accept-Encoding : gzip"과 같은 것을 추가해야합니다.

어떻게 그리고 어떻게해야합니까?

감사

답변

1

당신의 비누 요청에 ksoap 항아리를 사용하는 경우 다음 당신은 당신의 헤더 요청에 압축 메소드 이름을 설정해야합니다. 헤더를 설정하려면 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(); 
관련 문제