builder.addInterceptor(chain -> { Request request = chain.request(); Response response = chain.proceed(request); String content = response.body().string(); NutMap map = NutMap.WRAP(content); //这里是约定好的没有登录状态代码为48003 if (map.getInt("code") == 48003) { //这里写退出代码 return null; } /** * 这里需要重新创建response * 否则请求不到任何数据 */ MediaType mediaType = response.body().contentType(); return response.newBuilder() .body(ResponseBody.create(mediaType,content)) .build(); });
上面的方法不太建议使用(最好不要在拦截器中处理response.body)
一般使用http状态码处理(比如约定无登录时返回401状态码) response.code