我在Android中使用DefaultHTTPClient
來抓取頁面。我想捕獲服務器返回的500和404錯誤,但我得到的只是一個java.io.IOException
。我怎樣才能專門捕捉這兩個錯誤?使用tth時捕獲404和500錯誤DefaultHTTPClient
這裏是我的代碼:
public String doGet(String strUrl, List<NameValuePair> lstParams) throws Exception {
Integer intTry = 0;
while (intTry < 3) {
intTry += 1;
try {
String strResponse = null;
HttpGet htpGet = new HttpGet(strUrl);
DefaultHttpClient dhcClient = new DefaultHttpClient();
dhcClient.addResponseInterceptor(new MakeCacheable(), 0);
HttpResponse resResponse = dhcClient.execute(htpGet);
strResponse = EntityUtils.toString(resResponse.getEntity());
return strResponse;
} catch (Exception e) {
if (intTry < 3) {
Log.v("generics.Indexer", String.format("Attempt #%d", intTry));
} else {
throw e;
}
}
}
return null;
}
+1,我會建議改變你的代碼片段的評論,這實際上意味着你會處理其他塊的200響應以外的所有其他東西,因爲'java.net.HttpURLConnection.HTTP_OK'是一個常數值' 200' –
除了200以外的其他所有內容都由else塊(包括3xx,2xx(除200)和1xx狀態類)處理,而不僅僅是錯誤。 –