2016-11-10 12 views
1

を使用してこの警告が出ました。Retrofit、私は多くの答えをstackoverflowから見つけました。しかし、彼らの多くは、OkHttpについて話しています。Retrofit OkHttp xxxへの接続がリークしました

Retrofitを使用したときにレスポンスボディで何もしなかったため、改造の方法が見つかりませんでした。私はカスタムインターセプタを持っている

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(); 
} 

が、私はそれがこの警告の理由だとは思わない:

は、ここに私のカスタムOkHttpClientです。

はここだけretrofit2はレスポンスボディをしなかった、私は理由が問題を引き起こす何知りたいサーバー

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); 
} 

とのセッションを維持するためにヘッダを追加し、私のインターセプタです。私のために閉じる?

この警告を無視すると、何か悪いことはありますか?それについて間違っている。

+0

例外を除きログを表示 – raj

+0

11-11 09:47:57.936 1412-1412 /? W/ContextImpl:修飾されたユーザのいないシステムプロセスでメソッドを呼び出す:android.app.ContextImpl.sendBroadcast:1053 com.android.server.am.OppoActivityStackHelper.sendIsHomeModeIntent:65 com.android.server.am.OppoActivityStackHelper.handleSendHomeMode: 92 com.android.server.am.ActivityStack.resumeTopActivityLocked:1561 11-11 09:47:58.536 4462-4496 /? W/okhttp3.OkHttpClient:http://xxx.xxx.xx.xx/への接続がリークしました。レスポンスボディを閉じることを忘れましたか? –

+0

ちょうどxxx.xxx.xx.xxへの接続がリークしました。あなたは応答本文を閉じることを忘れました... –

答えて

0

インターセプタのoriginalResponseは閉じられていません。

関連する問題