最近看了一個大神的代碼,覺得別人寫的代碼有借鑑之處,故記錄下來,以便日後使用。
源碼如下:
String url ="http://180.101.49.12:8001";
Document doc = null;
String errorMsg = null;
for(int i =0 ;i<3;i++) {
try {
Connection con = Jsoup.connect(url);
con.timeout(1000);//連接超時
System.out.println("嘗試次數:"+(i+1) );
doc = con.get();
break;
}catch(UnknownHostException ex) {
errorMsg = "域名解析錯誤:"+ex.getMessage();
}catch(SocketTimeoutException ex) { //超時重試
errorMsg ="http 請求超時:"+ex.getMessage();
continue ;
}catch(Exception ex) {
errorMsg = "網絡異常:"+ex.getMessage();
}
}
if( doc == null ) {
System.err.println(errorMsg);
}else {
System.out.println(doc);
}
讓我“班門弄斧”介紹一下。首先,這是一個http請求的代碼,這段代碼考慮了幾種網絡異常的處理:
1.http 請求超時重試,代碼中總共嘗試3次;
2.域名異常捕獲、超時異常捕獲、其他網絡或通訊異常;
說明:在斷網後,如果url是域名訪問的情況下,首先是域名無法解析異常。
如果url是IP訪問,提示的異常“No route to host: connect”。
以上說明僅爲參考,實際運行結果會因環境不同而有出入,請多包涵!!!