0

次のAndroidからWebサービスを呼び出すためのサンプルコードを見つけました:

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
//...
try
{
SoapObject request = new SoapObject(NAMESPACE, GET_INTREBARE);

// add paramaters and values
request.addProperty("idTest", idTest);
request.addProperty("idIntrebare", idIntrebare);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);

//Web method call
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL_WS);
androidHttpTransport.call(NAMESPACE + GET_INTREBARE, envelope);
//get the response
SoapObject result = (SoapObject) envelope.getResponse();

//the response object can be retrieved by its name: result.getProperty("objectName")
}
catch (Exception e)
{
e.printStackTrace();
}

上記のコードでは、HttpTransportSEを使用してWebサービスメソッドを呼び出しています。私の疑問は、Webサービスを呼び出すときに、ネットワークによっては応答を取得するのに多少の遅延が発生する可能性があることです。

上記のコードでは、Webサービスが呼び出された直後に応答がSoapObjectに割り当てられます。

SoapObject result =(SoapObject)envelope.getResponse();

Webサービス呼び出しから応答を受け取ったときにカスタムイベントを発生させることは可能ですか?

4

0 に答える 0