在我的應用程序中,我正在從ReST Web服務下載JSON數據。大多數時候,這個工作正常,但有時連接會超時。如何處理HTTP超時?
這是我用來設置超時代碼...
HttpConnectionParams.setConnectionTimeout(httpParameters, 20000);
HttpConnectionParams.setSoTimeout(httpParameters, 42000);
如果連接超時,應用程序崩潰和關閉,如何處理超時?
在我的應用程序中,我正在從ReST Web服務下載JSON數據。大多數時候,這個工作正常,但有時連接會超時。如何處理HTTP超時?
這是我用來設置超時代碼...
HttpConnectionParams.setConnectionTimeout(httpParameters, 20000);
HttpConnectionParams.setSoTimeout(httpParameters, 42000);
如果連接超時,應用程序崩潰和關閉,如何處理超時?
HttpClient的類會引發ConnectTimeoutException異常,所以你應該聽吧:
try {
HttpResponse response = client.execute(post);
// do something with response
} catch (ConnectTimeoutException e) {
Log.e(TAG, "Timeout", e);
} catch (SocketTimeoutException e) {
Log.e(TAG, " Socket timeout", e);
}
我試圖捕捉這個異常,但它不起作用。 –
修正它以捕獲兩者。 – VM4
增加你的等待就像響應時間:
HttpConnectionParams.setConnectionTimeout(httpParameters, 60000); //1 minute
HttpConnectionParams.setSoTimeout(httpParameters, 90000); // 1.5 minute
我曾試圖抓住各種異常類型,我發現捕獲IOException異常工作,因爲我想!
這是因爲SocketTimeoutException是IOException的子類型。 :) – VM4
@VM啊好吧。謝謝,知道的非常有用 –
簡單的把'try-catch'塊並捕獲TimeOut。 – user370305
連接超時拋出「java.net.SocketTimeoutException:套接字未連接」,套接字超時「java.net.SocketTimeoutException:操作超時」。所以請嘗試趕上 –
你需要接受虛擬機的答案這是他的想法。 –