当我使用 Retrofit 时,我收到了此警告,我从stackoverflow找到了很多答案。但他们中的许多人都在谈论 OkHttp 。
当我使用Retrofit时,我没有对响应主体做任何事情,我在改造中找不到任何方法。
这是我自定义的OkHttpClient:
private OkHttpClient getOkHttpClient(){
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
builder.writeTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
builder.readTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
builder.addInterceptor(new ZCommonIntercepter());
return builder.build();
}
我确实有自定义拦截器,但我不认为这是警告的原因。
这里是我的拦截器,只需添加一个标题来保持与服务器的会话
Override
public Response intercept(Chain chain) throws IOException {
Response originalResponse = chain.proceed(chain.request());
if (!isFirst) {
if (!originalResponse.headers("Set-Cookie").isEmpty()) {
ConstantPool.SESSION_HIDUI = originalResponse.header("Set-Cookie");
}
}
isFirst = true;
Request request = chain.request()
.newBuilder()
.removeHeader("Cookie")
.addHeader("Cookie", ConstantPool.SESSION_HIDUI)
.build();
return chain.proceed(request);
}
我想知道造成这个问题的原因是什么,没有改造2做响应机构。对我好吗?
如果我忽略了这个警告,那会有什么不好的事情发生吗?错了。
答案 0 :(得分:0)
拦截器中的originalResponse
尚未关闭。