整体流程:
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) {