Okhttp拦截器导致多次请求问题

场景:二手代码,本来为了方便在拦截器中做token失效判断,结果导致会请求会发送2次。
如图在拦截器中使用responseBody.string()消费了请求,就会导致多次请求。

new Interceptor() {
                        @Override
                        public Response intercept(Chain chain) throws IOException {
                            Request request = chain.request();
                            Response response = chain.proceed(request);
                            ResponseBody responseBody = response.body();

                            //处理token失效
                            if (responseBody != null) {
                                String bodyString = responseBody.string();
                                if (bodyString.contains("\"status\":203") || bodyString.contains("\"status\":204") || bodyString.contains("\"status\":201")) {
                                    //发送退出请求
                                    EventBus.getDefault().post("toLoginOut");
                                }
                            }
                            return response;
                        }
                    }

``
return response改为return response.newBuilder().body(responseBody).build()就好了。

你可能感兴趣的:(Okhttp拦截器导致多次请求问题)