Frage

Wir sind immer zufällig einige unerwartete Ergebnisse von einigen Servern bei dem Versuch, einen Inputstream von einem HttpURLConnection zu öffnen. Es scheint, wie dieser Server würde die Verbindung akzeptieren und mit einem „Stay-alive“ header antworten, die den Sockel offen halten, aber erlaubt keine Daten in den Stream zurückgeschickt werden.

macht das Szenario einen Versuch für eine Multi-Threaded-Crawler ein wenig „kompliziert“, denn wenn einige Verbindung stecken bleibt, läuft der Faden würde es nie wieder zurückkehren ... Leugnung der Vollendung davon Pool ist, die in der Steuerung Denken ableitet, dass einige Threads arbeiten noch.

Gibt es eine Möglichkeit, die Verbindung Antwort-Header zu identifizieren, zu lesen, dass „Stay-alive“ Antwort und vermeiden versuchen, den Stream zu öffnen ??

War es hilfreich?

Lösung

Ich bin mir nicht sicher, was ich bin fehlt hier aber es scheint mir, müssen Sie einfach getHeaderField () ?

Andere Tipps

Haben Sie versucht, Einstellung, zusätzlich "Zeit ausgelesen" zu "connect time out"?

Siehe http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLConnection.html#setReadTimeout%28int%29

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top