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

首頁 > 學院 > 開發設計 > 正文

retrofit2攔截器處理401

2019-11-09 16:36:17
字體:
來源:轉載
供稿:網友

在使用retrofit 請求的時候如果遇到了401怎么辦?在每個請求之后都處理?那么這個就比較麻煩。我們可以在獲取retrofit之前加入Interceptor,在1.9之前你可以使用RequestInterceptor來攔截一個請求,但在2.0這個被取消,現在我們必須轉而使用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);//執行登陸的操作                }              //此處表示已有token 這時只需要判斷401即可                Request authorised = originalRequest.newBuilder()                        .header("Authorization",  token)//此處的token 是你保存在本地的                        .build();                Response response = chain.proceed(authorised);//執行此次請求                if (response.code() == 401) {//返回為token失效                    refreshToken();//重新獲取token,此處的刷新token需要同步執行以防止異步到來的問題                    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();    }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九台市| 新建县| 岑溪市| 维西| 孟津县| 睢宁县| 玛曲县| 龙陵县| 汾西县| 平安县| 广河县| 腾冲县| 桂阳县| 阳谷县| 大安市| 喀什市| 吉水县| 盖州市| 河北区| 灌阳县| 阿城市| 沂水县| 凤阳县| 皮山县| 无锡市| 大余县| 磐石市| 肥西县| 文山县| 鲁甸县| 社会| 台北市| 泽普县| 孟州市| 新野县| 疏勒县| 新民市| 平舆县| 常宁市| 龙陵县| 神木县|