http 網絡異常請求處理

最近看了一個大神的代碼,覺得別人寫的代碼有借鑑之處,故記錄下來,以便日後使用。

源碼如下:

		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”。

以上說明僅爲參考,實際運行結果會因環境不同而有出入,請多包涵!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章