2010-11-16 42 views
0

我正在使用kso​​ap庫來調用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) 
{} 

} 

回答

0

您將不得不修改HttpTransportSE類以獲取傳遞給套接字的超時參數。實現起來相當簡單,但是看看已經做到這一點的HttpsTransportSE類。

然後,您可以捕獲SocketTimeoutException並執行任何必要的操作。隨意在項目上創建問題並提供增強功能。