国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

retrofit2攔截器處理401

2019-11-09 17:39:09
字體:
供稿:網(wǎng)友

在使用retrofit 請求的時(shí)候如果遇到了401怎么辦?在每個(gè)請求之后都處理?那么這個(gè)就比較麻煩。我們可以在獲取retrofit之前加入Interceptor,在1.9之前你可以使用RequestInterceptor來攔截一個(gè)請求,但在2.0這個(gè)被取消,現(xiàn)在我們必須轉(zhuǎn)而使用okHttp的Interceptor。

public WebService getmWebService() {        if (mWebService == null) {            initOkHttpInterceptor();//okhttp的攔截器            retrofit = new Retrofit.Builder()                    .baseUrl(UrlConstant.BASE_URL)                    .client(client)L                    .addConverterFactory(GsonConverterFactory.create())                    .build();            mWebService = retrofit.create(WebService.class);        }        return mWebService;    }
PRivate void initOkHttpInterceptor() {        Interceptor mTokenInterceptor = new Interceptor() {            @Override            public Response intercept(Chain chain) throws IOException {                Request originalRequest = chain.request();                if ( token == null) {//表示第一次登陸還沒拉取過token                    return chain.proceed(originalRequest);//執(zhí)行登陸的操作                }              //此處表示已有token 這時(shí)只需要判斷401即可                Request authorised = originalRequest.newBuilder()                        .header("Authorization",  token)//此處的token 是你保存在本地的                        .build();                Response response = chain.proceed(authorised);//執(zhí)行此次請求                if (response.code() == 401) {//返回為token失效                    refreshToken();//重新獲取token,此處的刷新token需要同步執(zhí)行以防止異步到來的問題                    Request newRequest = originalRequest.newBuilder()                            .header("Authorization", token)                            .build();//                    return chain.proceed(newRequest);                }                return response;            }        };        client = new OkHttpClient.Builder()                .retryOnConnectionFailure(true)                .connectTimeout(15, TimeUnit.SECONDS)                .addInterceptor(mTokenInterceptor)                .build();    }
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 仙游县| 沧州市| 瑞昌市| 和静县| 双桥区| 富锦市| 湟源县| 新津县| 城固县| 桂阳县| 晴隆县| 南投县| 锡林郭勒盟| 麟游县| 上高县| 岳普湖县| 喀喇沁旗| 阿鲁科尔沁旗| 宝鸡市| 织金县| 凤山市| 肥城市| 和平县| 平陆县| 曲麻莱县| 田东县| 赞皇县| 泌阳县| 洛隆县| 泗阳县| 南昌市| 海林市| 阿拉善盟| 西平县| 岳西县| 双辽市| 青神县| 柯坪县| 中宁县| 平谷区| 青川县|