Java >> Java tutorial >  >> Tag >> byte

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.

Java tag