java 请求超时处理_android 网络请求超时简单处理(基于rxjava)
implementation ‘com.squareup.retrofit2:adapter-rxjava:2.1.0’
public class ExceptionHandle {
private static final int UNAUTHORIZED = 401;
private static final int FORBIDDEN = 403;
private static final int NOT_FOUND = 404;
private static final int REQUEST_TIMEOUT = 408;
private static final int INTERNAL_SERVER_ERROR = 500;
private static final int BAD_GATEWAY = 502;
private static final int SERVICE_UNAVAILABLE = 503;
private static final int GATEWAY_TIMEOUT = 504;
public static ResponeThrowable handleException(Throwable e) {
ResponeThrowable ex;
if (e instanceof HttpException) {
HttpException httpException = (HttpException) e;
ex = new ResponeThrowable(e, ERROR.HTTP_ERROR);
switch (httpException.code()) {
case UNAUTHORIZED:
case FORBIDDEN:
case NOT_FOUND:
case REQUEST_TIMEOUT:
case GATEWAY_TIMEOUT:
case INTERNAL_SERVER_ERROR:
case BAD_GATEWAY:
case SERVICE_UNAVAILABLE:
default:
//ex.code = httpException.code();
ex.message = "网络错误";
break;
}
return ex;
} else if (e instanceof java.net.UnknownHostException) {
ex = new ResponeThrowable(e, ERROR.SSL_ERROR);
ex.message = "网络错误";
return ex;
} else {
ex = new ResponeThrowable(e, ERROR.UNKNOWN);
ex.message = "未知错误";
return ex;
}
}
class ERROR {
/**
* 未知错误
*/
public static final int UNKNOWN = 1000;
/**
* 协议出错
*/
public static final int HTTP_ERROR = 1003;
/**
* 网络错误
*/
public static final int SSL_ERROR = 1005;
}
public static class ResponeThrowable extends Exception {
public int code;
public String message;
public ResponeThrowable(Throwable throwable, int code) {
super(throwable);
this.code = code;
}
}
}
//使用
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext() {
}
@Override
public void onError(Throwable e) {
if(e instanceof Exception){
//访问获得对应的Exception
Log.i("TAG",":code::"+ ExceptionHandle.handleException(e).code);
Log.i("TAG","message"+ ExceptionHandle.handleException(e).message);
}
}
@Override
public void onComplete() {
}
});
本文地址:https://blog.csdn.net/weixin_45189491/article/details/108977310
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
java 请求超时处理_android 网络请求超时简单处理(基于rxjava)相关推荐
- ios开发循环网络请求_如何简化网络请求接口开发
日常开发中,需要大量和后端对接接口,很容易写出大量的模板代码,比如把对接口的请求放到组件内,或者虽然有数据访问层,但是有大量 get,post 方法的调用,传参的字符串拼接,异常处理等等,有些逻辑是可 ...
- Android开发——网络请求(一)网络请求的API、授权和方法
网络请求的API 网络请求的授权 <!--网络权限--><uses-permission android:name="android.permission.INTERNET ...
- android网络请求回调管理,Android网络请求回调没正常走 处理方案
处理类 import android.os.Handler; import android.os.Looper; import android.os.Message; /** * * 考虑可能回调没正 ...
- 微信小程序网络请求配置问题及本地网络请求测试解决方案
本文只针对服务器网站没有备案或只需要做本地网络接口请求 一.问题引入 在小程序demo.wxml中声明button控件,并设置点击事件,如下: <button bindtap='testSend ...
- 苹果执行请求时出错_iOS网络请求错误整理
在iOS开发中经常会遇到网络请求的错误, 一方面可能会是自己网络请求的方式, 参数, 请求头等造成的; 另一方面可能就是后台写的接口出了问题; 所以看懂报错原因就显得尤为重要. 一. iOS错误状态码 ...
- 电脑登qq显示服务器返回超时,qq登陆 网络服务器超时
开始第一次号码注册登录.接登录服务器 ]...... 尝试连接UDP登录服务器超时,转尝试连接下一组服务器 UDP登录服务器全部尝试连接失败,尝试下一种登录方式 尝试TCP方式登录,准备连接TCP服务 ...
- 微信小程序 云开发 生成带参小程序码 云函数网络请求(Node.js网络请求)
生成带参小程序码流程 1.小程序端上传生成二维码所需的参数到云函数 2.云函数使用appid和appsecret请求access_token 3.云函数使用access_token + 小程序端上传的 ...
- java模拟时钟源代码_Android实现模拟时钟(简单+漂亮)--时针、分针、秒针
前言 前不久在网上看见Android实现的模拟时钟,感觉十分有意思,这里是地址: 秒表.笔者突然对其有了兴趣,也想去实现以下自己的模拟时钟.折腾了一阵子总算是弄出来了 现在将实现方式共享出来,大家一些 ...
- java编写一个框架_手把手教你写一个基于 RxJava 的扩展框架
背景 现在 RxJava 在 Android 开发中可谓时炽手可热,其受欢迎程度不言而喻,也因此在 github 上出现了一系列的基于 RxJava 的框架,如 RxBinding.RxPermiss ...
最新文章
- 文件存储服务器英文,文件存储服务器
- python 空dataframe_python 创建一个空dataframe 然后添加行数据的实例
- 7000 字精华总结,Pandas/Sklearn 进行机器学习之特征筛选,有效提升模型性能
- iOS - OC NSPoint 位置
- BigDecimal的使用举例,包括阶乘的相加求法思路
- ABAP选择屏幕建议
- JZOJ 5425. 【NOIP2017提高A组集训10.25】数论
- tp5循环查询语句_tp5 foreach 套循环的优化(就是foreach 里边再查表)
- JavaScript + Tampermonkey——易班优课YOOC课群在线测试自动答题解决方案(十七)复合型解决方案油猴脚本
- 案例:Redis 问题汇总和相关解决方案
- 4015-基于递归的折半查找(C++)
- 羿的后人证明上古历史不是神话
- 微信小程序开发04-打造自己的UI库
- stm32f103c8t6单片机驱动台达伺服电机
- 39个大数据可视化工具 数据研究必备
- 对标苹果开“旧机发布会”?罗永浩出任转转品牌推广大使
- 安卓手机怎么运行java?如何在Android手机上运行jAVA程序?
- Hololens连接mysql_学校hololens开发项目:汽车发动机检修混合现实(MR)教学
- [渝粤教育] 广东-国家-开放大学 21秋期末考试马克思主义基本原理概论(A)10882k1 (3)
- ThinkPad T400重装win7系统
热门文章
- 一台linux同时安装两个mysql库,使用不同端口
- matlab 振动信号 阀值去噪,基于MATLAB的振动信号去噪研究
- 时序预测 | MATLAB实现PSO-SVM粒子群优化支持向量机时间序列预测
- 基于51单片机电热水壶自动加热水温控制系统(源程序+仿真+论文)
- 有源rfid标签和无源rfid标签有哪些区别
- 日拱一卒,热爱可抵岁月漫长
- Formal verification (FV) 处理复杂度 形式验证 第10章
- 【Dubbo】图解Dubbo官方文档
- 当当网页制作html代码,网页制作语言:HTML
- 6.1 欧拉方法与改进欧拉方法