Frage

Mein Apache HTTP-Client Daten von einem Server zu lesen, die HTTP-Streaming sendet (in Form von Chunked Daten) zu uns.

Ich habe einen Eingangsstrom und Buffered Reader Daten zu erhalten, und diese Daten Leseverfahren unter Verwendung von gepufferten Daten readline.

InputStream inputStream = httpEntity.getContent();
br= new BufferedReader(new InputStreamReader(inputStream));

while ((line = br.readLine()) != null) 

Ich mag die Verbindung schließen, wenn ich eine falsche Antwort vom Server erhalten.

Für dieses Ich schaffe eine Timertask in einem Zeitintervall meine Verbindung zu schließen. Ich bin Parsen die Antwort jedes Mal, wenn ich es erhalten zu überprüfen, ob die Antwort richtig ist, wenn die Antwort richtig ist, dann ich die Time zurückgesetzt. Wenn ich eine falsche Antwort in diesem Fall finde ich nicht die Timertask zurückgesetzt (und lassen Sie die Timertask zu der Zeit ausgeführt werden, das zuvor für gesetzt wurde)

Ich möchte, wenn mit ungepufferten ich wissen / O kann helfen? oder brauche ich einen anderen Ansatz?

Problem sehe ich, da die Verbindung geöffnet ist, ist mein Timertask nicht in der Lage, die Verbindung zu schließen. inputStream.close oder bufferReader.close beide sind nicht in der Lage auszuführen (zu unendlich warten scheint)

War es hilfreich?

Lösung

BufferReader.close() wird nur in der Nähe der INPUTSTREAM- was wiederum inputStream.close() nennen. Nach dem Java api InputStream.close() tut nichts. Sie müssen die Steckdose schließen, oder was auch immer es ist, dass Sie von httpEntity sind abstrahiert.

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