HttpURLConnections ignorer les délais d'attente et ne jamais revenir
-
10-07-2019 - |
Question
Certains serveurs obtiennent des résultats inattendus de manière aléatoire en essayant d'ouvrir un InputStream à partir d'une connexion HttpURLConnection. Il semble que ces serveurs accepteraient la connexion et répondraient par un message "rester en vie". en-tête qui gardera le Socket ouvert mais ne permettra pas aux données d'être renvoyées au flux.
Ce scénario tente un peu "compliqué" pour un robot multi-thread, car si une connexion est bloquée, le thread qui l'exécute ne retournera jamais ... en refusant l'achèvement de son pool, ce qui dérive dans la pensée du contrôleur. que certains threads fonctionnent toujours.
Existe-t-il un moyen de lire l'en-tête de réponse de la connexion pour identifier ce "& restez en vie" " répondre et éviter d’essayer d’ouvrir le flux ??
La solution
Je ne suis pas sûr de ce qui me manque ici, mais il me semble qu'il vous faut simplement getHeaderField () ?
Autres conseils
Avez-vous essayé de définir le paramètre "Délai de lecture" en plus du paramètre "Délai de connexion"?
Voir http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLConnection.html#setReadTimeout%28int%29