Bit-weiser HTTP Download

  • Hallo,


    ich lade von einem Server partielle Daten über eine HttpURLConnection runter.
    Das funktioniert auch wunderbar. Allerdings würde ich gerne mehrere "Teile" herunterladen und zu einer Datei "output.txt" zusammenführen.
    Also anstatt, wie in meinem Code Byte 12 bis 100012 auch Byte 200012 bis 300012. Kenn hier jemand die Syntax für?

  • Ohne mich damit auszukennen würde ich vermuten, dass Du statt einem setRequestProperty zwei addRequestProperty nutzen solltest.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Nee, das war's leider nicht. Wenn man mehrere addRequestProperty setzt, wird die ganze Datei runter geladen...
    Aber ein Blick in die Dokumentation 14.35.1 hilft: HTTP/1.1: Header Field Definitions.
    Dann lautet die setRequestProperty Zeile wie folgt:

    Java
    urlConnection.setRequestProperty("Range", "bytes=" + "12" + "-" + "100012" + "," + "200012" + "-" + "300012");


    Allerdings bekomme ich dann immer um die 200 Byte mehr als angefragt...

  • Die Syntax steht z.B. hier:
    http://greenbytes.de/tech/webd…pbis-p5-range-latest.html oder http://tools.ietf.org/html/rfc2616#section-14.35


    demnach bytes=500-600,701-999


    Zu beachten scheint mir dass es ein optionales Feature des Servers oder von Proxies ist. D.h. nur wenn man einen 206-Status bekommt, war es wirklich ein Range. Und wie mehrere (vielleicht sogar überlappende?) Ranges in einer Antwort zusammengefasst werden habe ich jetzt nicht nachgelesen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!