我正在使用ksoap库来调用android中的webservice。 如果INTERNET在通话中间不可用,我在这里看不到请求超时属性,所以拥有它很重要。
有人建议我使用具有Sotimeout的socket类但我不知道如何在这里实现它任何人都建议我该怎么办?
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)
{}
}
答案 0 :(得分:0)
您必须修改HttpTransportSE类以获取传递给套接字的超时参数。实现它会非常简单,但是看看已经执行此操作的HttpsTransportSE类。
然后你可以捕获SocketTimeoutException并做任何必要的事情。随意在项目上创建一个问题,或者提供增强功能。