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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值