Método getInputStream() travando

Olá, eu tenho um método que faz varias requisições em um servidor por minuto, ele funciona perfeitamente durante algumas horas mas, as vezes ele trava na hora de chamar o getInputStream().

private String getResponseFromServer(HttpURLConnection conn) throws IOException, InterruptedException {

    String responseStr;
    BufferedReader reader;
    StringBuilder sb = new StringBuilder();

    esperar();
    try (InputStream is = conn.getInputStream(); InputStreamReader ir = new InputStreamReader(is)) {

        reader = new BufferedReader(ir);
        String linha;

        while ((linha = reader.readLine()) != null) {
            sb.append(linha).append("\n");
        }
    }

    responseStr = sb.toString();
    return responseStr;
}

Eu não faço ideia de como resolver isso a não ser parar o programa e começar de novo.

O método esperar() faz a thread esperar por um segundo para continuar.

Cara, percebi que você não está fechando o reader…

No caso do InputStream beleza, está declarado no try então será fechado automaticamente, mas o reader não… será isso que está causando lentidão?

1 curtida

Eu não tinha pensado no reader agora eu colequei ele dentro do try e vou esperar pra ver se trava de novo.
Vlw pela resposta.

1 curtida