android--通过OkHttp3拦截token失效

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

整体流程:

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值