最近看了一个大神的代码,觉得别人写的代码有借鉴之处,故记录下来,以便日后使用。
源码如下:
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”。
以上说明仅为参考,实际运行结果会因环境不同而有出入,请多包涵!!!