Ksoap库和请求超时?
问题描述:
我正在使用ksoap库来调用android中的webservice。 我在这里没有看到请求超时属性的情况下,因特网在呼叫中不可用,所以它很重要。Ksoap库和请求超时?
有人建议我使用Sotimeout套接字类,但我不知道如何实现它在这里任何一个建议我该怎么办?
public void callWebservice()
{
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("passonString", "anything");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
..
...
}catch(Exception ex)
{}
}
答
您将不得不修改HttpTransportSE类以获取传递给套接字的超时参数。实现起来相当简单,但是看看已经做到这一点的HttpsTransportSE类。
然后,您可以捕获SocketTimeoutException并执行任何必要的操作。随意在项目上创建问题并提供增强功能。