Datei über HTTP mit unbekannter Länge mit Java herunterladen
Ich möchte eine HTTP-Abfrage mit Java herunterladen, aber die heruntergeladene Datei hat beim Herunterladen eine unbestimmte Länge.
Ich dachte, das wäre ziemlich normal, also suchte ich und fand ein Code-Snippet dafür:http://snipplr.com/view/33805/
Es gibt jedoch ein Problem mit der Variable contentLength. Da die Länge unbekannt ist, bekomme ich -1 zurück. Dies erzeugt einen Fehler. Wenn ich die gesamte Prüfung auf contentLength weglasse, muss ich immer den maximalen Puffer verwenden.
Das Problem ist aber, dass die Datei noch nicht fertig ist. So wird der Flush nur teilweise gefüllt und Teile der Datei gehen verloren.
Wenn Sie versuchen, einen Link wiehttp://overpass-api.de/api/interpreter?data=area%5Bname%3D%22Hoogstade%22%5D%3B%0A%28%0A++node%28area%29%3B%0A++%3C%3B % 0A% 29 +% 3B% 0Aout + Meta + qt% 3B Mit diesem Snippet werden Sie den Fehler bemerken. Wenn Sie immer den maximalen Puffer herunterladen, um den Fehler auszulassen, erhalten Sie eine beschädigte XML-Datei.
Gibt es eine Möglichkeit, nur den fertigen Teil der Datei herunterzuladen? Ich würde gerne große Dateien herunterladen (bis zu ein paar GB).