retrofit 对callback错误的统一处理

前言

在使用 retrofit 的时候,碰到这样一个问题,所有的网络接口都要进行网络请求错误判断而进行错误处理,也就是说每个 Callback 都要做同一件事情,这样就平白添加了许多无用的代码。以下是怎么对 retrofit 的 Callback 进行统一的错误处理

知识了解

retrofit 是对 okHttp 进行的封装,okHttp 请求返回的状态码为:

HTTP Status 说明
1xx 代表请求已被接受,需要继续处理 (临时相应)
2xx 代表请求已成功被服务器接收、理解、并接受
3xx 代表需要客户端采取进一步的操作才能完成请求
4xx 代表了客户端看起来可能发生了错误,妨碍了服务器的处理
5xx 表示服务器无法完成明显有效的请求

想要知道 HTTP Status 的具体说明请查看网址:HTTP 状态码-维基百科 ,该网址对 HTTP 状态码对每个大状态下各个小状态也进行了详细说明,能够更好的理解 HTTP 的状态码的意义。

优化前

使用过 Retrofit 的网友们,我们都知道,onResponse 方法一般是在网络请求后,有返回信息( HTTP 五类状态码 )时回调;而 onFailure 方法据我了解一般是由于请求延迟、超时,或者网络状态差等网络问题导致请求失败时回调。以下是我们刚接触retrofit时的写法:

UserAPI.signin(entity, new Callback<LoginEntity>() {
                @Override
                public void onResponse(Call< LoginEntity > call, Response< LoginEntity > response) {
                         if (response.isSuccessful()){
                           //1⃣️接口请求成功,对返回的数据进行处理
                        } else{
                          //2⃣️对后台返回的请求错误,进行处理
                        }
                }
                @Override
                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值