Método getInputStream() travando

2 respostas Resolvido
javaprogramação
J

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.

2 Respostas

L
Solucao aceita

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?

J

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.

Criado 16 de abril de 2017
Ultima resposta 22 de abr. de 2017
Respostas 2
Participantes 2