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)相关推荐

  1. ios开发循环网络请求_如何简化网络请求接口开发

    日常开发中,需要大量和后端对接接口,很容易写出大量的模板代码,比如把对接口的请求放到组件内,或者虽然有数据访问层,但是有大量 get,post 方法的调用,传参的字符串拼接,异常处理等等,有些逻辑是可 ...

  2. Android开发——网络请求(一)网络请求的API、授权和方法

    网络请求的API 网络请求的授权 <!--网络权限--><uses-permission android:name="android.permission.INTERNET ...

  3. android网络请求回调管理,Android网络请求回调没正常走 处理方案

    处理类 import android.os.Handler; import android.os.Looper; import android.os.Message; /** * * 考虑可能回调没正 ...

  4. 微信小程序网络请求配置问题及本地网络请求测试解决方案

    本文只针对服务器网站没有备案或只需要做本地网络接口请求 一.问题引入 在小程序demo.wxml中声明button控件,并设置点击事件,如下: <button bindtap='testSend ...

  5. 苹果执行请求时出错_iOS网络请求错误整理

    在iOS开发中经常会遇到网络请求的错误, 一方面可能会是自己网络请求的方式, 参数, 请求头等造成的; 另一方面可能就是后台写的接口出了问题; 所以看懂报错原因就显得尤为重要. 一. iOS错误状态码 ...

  6. 电脑登qq显示服务器返回超时,qq登陆 网络服务器超时

    开始第一次号码注册登录.接登录服务器 ]...... 尝试连接UDP登录服务器超时,转尝试连接下一组服务器 UDP登录服务器全部尝试连接失败,尝试下一种登录方式 尝试TCP方式登录,准备连接TCP服务 ...

  7. 微信小程序 云开发 生成带参小程序码 云函数网络请求(Node.js网络请求)

    生成带参小程序码流程 1.小程序端上传生成二维码所需的参数到云函数 2.云函数使用appid和appsecret请求access_token 3.云函数使用access_token + 小程序端上传的 ...

  8. java模拟时钟源代码_Android实现模拟时钟(简单+漂亮)--时针、分针、秒针

    前言 前不久在网上看见Android实现的模拟时钟,感觉十分有意思,这里是地址: 秒表.笔者突然对其有了兴趣,也想去实现以下自己的模拟时钟.折腾了一阵子总算是弄出来了 现在将实现方式共享出来,大家一些 ...

  9. java编写一个框架_手把手教你写一个基于 RxJava 的扩展框架

    背景 现在 RxJava 在 Android 开发中可谓时炽手可热,其受欢迎程度不言而喻,也因此在 github 上出现了一系列的基于 RxJava 的框架,如 RxBinding.RxPermiss ...

最新文章

  1. 文件存储服务器英文,文件存储服务器
  2. python 空dataframe_python 创建一个空dataframe 然后添加行数据的实例
  3. 7000 字精华总结,Pandas/Sklearn 进行机器学习之特征筛选,有效提升模型性能
  4. iOS - OC NSPoint 位置
  5. BigDecimal的使用举例,包括阶乘的相加求法思路
  6. ABAP选择屏幕建议
  7. JZOJ 5425. 【NOIP2017提高A组集训10.25】数论
  8. tp5循环查询语句_tp5 foreach 套循环的优化(就是foreach 里边再查表)
  9. JavaScript + Tampermonkey——易班优课YOOC课群在线测试自动答题解决方案(十七)复合型解决方案油猴脚本
  10. 案例:Redis 问题汇总和相关解决方案
  11. 4015-基于递归的折半查找(C++)
  12. 羿的后人证明上古历史不是神话
  13. 微信小程序开发04-打造自己的UI库
  14. stm32f103c8t6单片机驱动台达伺服电机
  15. 39个大数据可视化工具 数据研究必备
  16. 对标苹果开“旧机发布会”?罗永浩出任转转品牌推广大使
  17. 安卓手机怎么运行java?如何在Android手机上运行jAVA程序?
  18. Hololens连接mysql_学校hololens开发项目:汽车发动机检修混合现实(MR)教学
  19. [渝粤教育] 广东-国家-开放大学 21秋期末考试马克思主义基本原理概论(A)10882k1 (3)
  20. ThinkPad T400重装win7系统

热门文章

  1. 一台linux同时安装两个mysql库,使用不同端口
  2. matlab 振动信号 阀值去噪,基于MATLAB的振动信号去噪研究
  3. 时序预测 | MATLAB实现PSO-SVM粒子群优化支持向量机时间序列预测
  4. 基于51单片机电热水壶自动加热水温控制系统(源程序+仿真+论文)
  5. 有源rfid标签和无源rfid标签有哪些区别
  6. 日拱一卒,热爱可抵岁月漫长
  7. Formal verification (FV) 处理复杂度 形式验证 第10章
  8. 【Dubbo】图解Dubbo官方文档
  9. 当当网页制作html代码,网页制作语言:HTML
  10. 6.1 欧拉方法与改进欧拉方法