整体流程:
1. 请求一接口:比如 test
2.先拦截test的http code:若是401则拦截,再通过refreshToken获取最新的access_token及refresh_token,
3.再通过Request重新触发请求,请求test接口
话不多说,直接贴代码
首先创建okHttpBuilder
OkHttpClient.Builder okHttpBuilder = new OkHttpClient.Builder();
okHttpBuilder.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.connectTimeout(30, TimeUnit.SECONDS);
自定义token拦截器:
public class TokenInterceptor implements Interceptor {
@Override
public Response intercept(@NonNull Chain chain) throws IOException {
Request request = chain.request();
request.newBuilder().header("accessToken", PreferencesUtil.getInstance().getString(PreferencesUtil.Name.ACCESS_TOKEN));
Response response = chain.proceed(request);
int responseCode = response.code();
if (responseCode == ErrorCode.ERR_CODE_401) {
String refreshToken = PreferencesUtil.getInstance().getString(Preferen

本文介绍了如何在Android应用中使用OkHttp3实现对HTTP请求的拦截,当接收到401响应时,自动进行Token刷新,并重新发送请求。详细流程包括:1. 请求接口;2. 检查401状态码;3. 刷新Token;4. 重新发起请求。关键在于自定义TokenInterceptor并将其添加到OkHttpBuilder的拦截器链中。
最低0.47元/天 解锁文章
3089

被折叠的 条评论
为什么被折叠?



