国产探花免费观看_亚洲丰满少妇自慰呻吟_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();    }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒙自县| 蒲城县| 余干县| 云龙县| 孟州市| 西华县| 湖州市| 开阳县| 方城县| 新竹县| 泉州市| 都江堰市| 舒兰市| 清远市| 黑水县| 错那县| 景东| 华阴市| 永泰县| 孝义市| 阿鲁科尔沁旗| 乌鲁木齐市| 南乐县| 高雄市| 溆浦县| 敖汉旗| 黄平县| 阿坝| 随州市| 西乌| 泌阳县| 万年县| 胶南市| 封丘县| 永州市| 济南市| 阳西县| 宣恩县| 元阳县| 大同县| 安乡县|