Las conexiones HttpURLC ignoran los tiempos de espera y nunca regresan
-
10-07-2019 - |
Pregunta
Estamos obteniendo algunos resultados inesperados al azar de algunos servidores al intentar abrir un InputStream desde una conexión HttpURLConnection. Parece que esos servidores aceptarían la conexión y responderían con un "mantenerse vivo". encabezado que mantendrá abierto el Socket pero no permite que los datos se envíen de vuelta a la transmisión.
Ese escenario hace que un intento de un rastreador de subprocesos múltiples sea un poco 'complicado', porque si alguna conexión se atasca, el subproceso en ejecución nunca volverá ... negando la finalización de su grupo que deriva en el pensamiento del controlador que algunos hilos siguen funcionando.
¿Hay alguna forma de leer el encabezado de la respuesta de conexión para identificar que "mantenerse vivo"? responder y evitar intentar abrir la transmisión ??
Solución
No estoy seguro de lo que me falta aquí, pero me parece que simplemente necesita getHeaderField () ?
Otros consejos
¿Intentó configurar " tiempo de espera de lectura " ;, además de " tiempo de espera de conexión " ;?
Ver http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLConnection.html#setReadTimeout%28int%29