| 參數 | 方法 | 含義 |
|---|---|---|
| Connection Timeout | HttpConnectionParams.setConnectionTimeout(params, 3000) | 建立 TCP 連線最長等待時間(毫秒) |
| Socket Timeout (SO_TIMEOUT) | HttpConnectionParams.setSoTimeout(params, 15000) | 資料傳輸間隔最長等待時間,即讀取資料逾時 |
ConnectTimeoutException(繼承 IOException)SocketTimeoutException(繼承 InterruptedIOException → IOException)catch (IOException e) 捕捉try {
HttpResponse response = httpclient.execute(httpget);
// 處理回應
} catch (SocketTimeoutException e) {
Log.e(TAG, "讀取逾時", e);
// 重試或提示網路慢
} catch (ConnectTimeoutException e) {
Log.e(TAG, "連線逾時", e);
// 檢查網路/伺服器
} catch (IOException e) {
Log.e(TAG, "其他 IO 錯誤", e);
}
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setSoTimeout(params, 1); // 1ms 極短逾時
DefaultHttpClient client = new DefaultHttpClient(params);
client.execute(new HttpGet("https://google.com")); // 必拋 SocketTimeoutException
DefaultHttpClient 已在 API 22 棄用,新專案請改用 HttpURLConnection、OkHttp 或 Retrofit。