Start download fra en bestemt byte
Jeg vil gerne implementere en distribueret download-manager på Android, der starter downloads ved bestemte byte-længder. Så på denne måde kan dele af filer downloades i stedet for kun fra begyndelsen til slutningen af http-anmodningen.
Intet nyskabende ved det, jeg ved bare ikke hvordan man gør det. (Det er heller ikke bitorrent)
Hvordan kan jeg få filens længde fra serveren i java http apache-biblioteket og derefter starte en download fra midten af filen til slutningen?
Svar
Med HttpClient:
if (offset > 0) { String startFrom = "bytes= " + offset + "-"; if (expected >= 0) { startFrom += expected; } mHttpGet.addHeader("Range", startFrom); expectedStatusCode = HttpStatus.SC_PARTIAL_CONTENT; }
hvor mHttpGet
er en forekomst af HttpGet
, offset
er antallet af bytes, du allerede havde downloadet og expected
er størrelsen på filen.
om feltet Range i HttpGet-headeren:
Request only part of an entity. Bytes are numbered from 0.