android的HttpClient新增請求超時時間
阿新 • • 發佈:2019-02-19
在做一個android的移動專案的時候,想為httpClient物件新增請求超時和讀取超時時間,發現httpClient的物件實現的defaultHttpClient物件中就沒有設定超時時間的方法,所以一直鬱悶的,覺得怎麼回沒有,難道defaultHttpClient物件中已經封裝了請求超時時間和讀取時間,不過這樣不是可擴張性不好了,最近在android論壇上面,發現了其實android的httpClient是可以的,不過設定在HttpConnectionParams的靜態方法中設定,詳細的我寫了一段程式碼提供給大家:
private static final int REQUEST_TIMEOUT = 10*1000;//設定請求超時10秒鐘 private static final int SO_TIMEOUT = 10*1000; //設定等待資料超時時間10秒鐘 /** * 新增請求超時時間和等待時間 * @author spring sky * @return HttpClient物件 */ public HttpClient getHttpClient(){ BasicHttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, REQUEST_TIMEOUT); HttpConnectionParams.setSoTimeout(httpParams, SO_TIMEOUT); HttpClient client = new DefaultHttpClient(httpParams); return client; }
上面的方法,可以為每個請求公用,以後維護也很方便!個人建議,把這個方法在寫父類讓子類繼承,這樣的話符合面向物件程式設計!