Estoy usando la clase HttpURLConnection para hacer solicitudes http. Mi código se ve algo como esto:HttpURLConnection.getInputStream() bloques
while(true){
try{
connection=(HttpURLConnection)url.openConnection();
connection.setDoOutput(true);
connection.setConnectTimeout(2*1000);
InputStream in=connection.getInputStream();
}
catch(SocketTimeOutException e){}
catch(IOException e){}
}
hago algún tipo de procesamiento de los datos una vez que recuperar el objeto InputStream. Mi problema es que si dejo que el programa se ejecute lo suficiente, la llamada a getInputStream se bloquea y nunca lo supero.
¿Me falta algo? Cualquier puntero o ayuda sería muy apreciada. Gracias.
Nunca haga este tipo de cosas 'catch (SocketTimeOutException e) {}' en un bucle 'while (true)'. Hará que sea muy difícil depurar o detener su programa correctamente. – artbristol
@artbristol qué estás tratando de decir ... eso es de nuestro código de producción :) –
Además de hacer como @artbristol dice que has intentado comentar el 'connection.setDoOutput (true)' ya que esto significa que está esperando que llames 'connection.getOutputStream()' y escribir algo en el cuerpo de Http –