Muss ich HttpURLConnection.disconnect aufrufen, nachdem ich es beendet habe?

Der folgende Code funktioniert grundsätzlich wie erwartet. Um jedoch paranoid zu sein, habe ich mich gefragt, um ein Auslaufen von Ressourcen zu vermeiden,

Muss ich anrufen?HttpURLConnection.disconnect, nach Beendigung der Nutzung?Muss ich anrufen?InputStream.close?Muss ich anrufen?InputStreamReader.close?Muss ich die folgenden 2 Codezeilen haben:httpUrlConnection.setDoInput(true) undhttpUrlConnection.setDoOutput(false), kurz nach dem Aufbau von httpUrlConnection?

Der Grund, warum ich das frage, ist, dass die meisten Beispiele, die ich gesehen habe, keine solche Bereinigung durchführen.http://www.exampledepot.com/egs/java.net/post.html undhttp://www.vogella.com/articles/AndroidNetworking/article.html. Ich möchte nur sicherstellen, dass diese Beispiele auch korrekt sind.

public static String getResponseBodyAsString(String request) {
    BufferedReader bufferedReader = null;
    try {
        URL url = new URL(request);
        HttpURLConnection httpUrlConnection = (HttpURLConnection)url.openConnection();
        InputStream inputStream = httpUrlConnection.getInputStream();
        bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

        int charRead = 0;
        char[] buffer = new char[1024];
        StringBuffer stringBuffer = new StringBuffer();
        while ((charRead = bufferedReader.read(buffer)) > 0) {
            stringBuffer.append(buffer, 0, charRead);
        }
        return stringBuffer.toString();
    } catch (MalformedURLException e) {
        Log.e(TAG, "", e);
    } catch (IOException e) {
        Log.e(TAG, "", e);
    } finally {
        close(bufferedReader);
    }
    return null;
}

private static void close(Reader reader) {
    if (reader != null) {
        try {
            reader.close();
        } catch (IOException exp) {
            Log.e(TAG, "", exp);
        }
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage