Android 如何取消ksoap2中的soap调用?
我使用以下代码通过ksoap2调用webservice方法:Android 如何取消ksoap2中的soap调用?,android,ksoap2,httptransportse,Android,Ksoap2,Httptransportse,我使用以下代码通过ksoap2调用webservice方法: SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); envelope.dotNet = true; envelope.setOutputSoapObject(request); HttpTransp
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(url,
TimeOutInSeconds * 1000);
try {
androidHttpTransport.call(soapAction, envelope);
} catch (Exception e) {
}
SoapObject so = (SoapObject) envelope.getResponse();
在某些情况下,webserivce不会立即响应我的请求,应用程序正在等待调用(soapAction,信封)代码>并且用户希望取消请求。如何让用户取消调用方法?我希望您从后台线程而不是UI/主线程调用这一行。事实上,在HC+上,由于StrictMode,默认情况下会崩溃 取消正在进行的网络呼叫可能很棘手。您可能需要保留对连接本身的引用,并从主线程调用
shutdown()
方法。但不能保证取消会立即被调用。它将取决于连接本身的实现
我假设您正在使用kSOAP,我不确定它是否提供了cancel()
机制
另一种方法是等待第一次调用完成,然后进行另一次网络调用以撤消服务器上的操作。这将确保您的状态同步