Ich verwende OkHttp 3, und ich werde immer Verbindung Warnungen durchgesickert:OkHttp: durchgesickert Verbindung vermeiden Warnung
WARNING: A connection to https://help.helpling.com/ was leaked. Did you forget to close a response body?
Jul 14, 2016 6:57:09 PM okhttp3.ConnectionPool pruneAndGetAllocationCount
Jedesmal, wenn ich einen ResponseBody
, ich entweder Anruf .string()
, die angeblich den Stream für mich schließt, oder ich schließen sie es explizit in einem finally
Block, auf folgende Weise:
ResponseBody responseBody = response.body();
try (Reader responseReader = responseBody.charStream()) {
...
}
finally {
responseBody.close();
}
Meine Anwendung intensive Nutzung des Netzes macht, und doch häufig diese Warnung angezeigt wird. Ich habe nie ein Problem durch dieses vermeintliche Leck beobachtet, aber ich würde immer noch gerne verstehen, wenn und was Ich mache falsch.
Könnte irgendjemand etwas Licht darauf werfen?
Wenn Sie meine Frage gelesen, hätten Sie gesehen, dass ich schon genau tue dies ... – Alphaaa
dieses Problem folgen Sie erhalten Sie antworten, da an diesem https keine vollständige Code ist: // GitHub. com/square/okhttp/issues/2311 –
Vielen Dank für den Link, aber das Problem dort war nur, weil das Plakat den Körper überhaupt nicht für nicht-200 Antworten geschlossen hat. Hier mit dem 'finally' Block sollte ich alle Fälle erfassen. – Alphaaa