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

以上说明仅为参考,实际运行结果会因环境不同而有出入,请多包涵!!!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行网络请求时,处理异常是非常重要的。以下是一些处理网络请求异常的常见方法: 1. 使用try-except语句:在发送网络请求的代码块周围使用try-except语句,以捕获可能发生的异常。这样可以在出现异常时执行相应的异常处理代码。 ```python import requests try: response = requests.get(url) # 处理正常响应 except requests.exceptions.RequestException as e: # 处理异常 print("网络请求异常:", e) ``` 2. 检查HTTP状态码:在接收到响应后,检查返回的HTTP状态码。常见的成功状态码为200-299范围内的值,其他值可能表示请求出现了问题。 ```python import requests response = requests.get(url) if response.status_code == 200: # 处理正常响应 else: # 处理异常 print("网络请求异常:", response.status_code) ``` 3. 进行重试:如果在发送网络请求时出现异常,可以尝试重新发送请求。可以使用循环来实现重试逻辑,设置最大重试次数以避免无限循环。 ```python import requests max_retries = 3 retry_count = 0 while retry_count < max_retries: try: response = requests.get(url) # 处理正常响应 break except requests.exceptions.RequestException as e: # 处理异常 print("网络请求异常:", e) retry_count += 1 ``` 4. 使用超时设置:可以设置一个合理的超时时间,在网络请求超过这个时间后,即使没有得到响应,也可以进行相应的处理。 ```python import requests try: response = requests.get(url, timeout=5) # 处理正常响应 except requests.exceptions.Timeout: # 处理超时异常 print("网络请求超时") except requests.exceptions.RequestException as e: # 处理其他异常 print("网络请求异常:", e) ``` 这些是处理网络请求异常的一些常见方法,根据具体的需求和场景,可以选择适合的方法来进行异常处理

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值