3

私は wsimport ツールを使用して、非常にうまく機能する SOAP クライアントを作成しました。応答が非常に大きくなる可能性があるため、サーバーから圧縮された応答を要求するのが好きです。

サーバーが圧縮されたコンテンツを送信できるかどうかわかりません。私の知る限り、リクエストに「Accept-Encoding: gzip」のようなものを追加する必要があります。

どのように、どこでそれを行うのですか?

ありがとう

4

1 に答える 1

2

SOAP リクエストに ksoap jar を使用している場合は、ヘッダー リクエストに圧縮メソッド名を設定する必要があります。ヘッダーを設定するには、そのために HeaderProperty クラスを使用できます。SOAP リクエストを送信する簡単な例を次に示します。

    //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();
于 2013-03-01T05:51:34.513 に答える