这篇博客是在这一篇博客的基础上进行优化完善的
与之相比,添加了全局自刷新token,失败自动重连,模块化、抽离网络请求模块成单独的library
实现全局自刷新token的逻辑并不复杂
- 添加token到Header
- 通过自定义的转换工厂,根据接口返回的token过期信息,抛出自定义token异常
- 获取最新的token,并且更换token
- 重新发起请求
添加header有多种方法
可以这样动态添加
@POST()
Flowable<TestBean> addHeader(@Header("token")String token);
@POST()
Flowable<TestBean> addHeader(@HeaderMap Map<String,String> token);
也可以这样静态添加
@Headers({"key:value","","",""})
@POST()
Flowable<TestBean> addHeader();
@Headers("key:value")
@POST()
Flowable<TestBean> addHeader();
还可以这样
OkHttpClient clients = new OkHttpClient.Builder()
.addInte