场景:二手代码,本来为了方便在拦截器中做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()
就好了。
网友评论