2

特定のバイト長でダウンロードを開始する分散ダウンロード マネージャーを Android に実装したいと思います。したがって、この方法では、http 要求の最初から最後までだけではなく、ファイルの一部をダウンロードできます。

それについて革新的なことは何もありません。私はそれを行う方法を知りません。(bitorrentでもありません)

Java http apache ライブラリで、サーバーからファイルの長さを取得し、ファイルの途中から最後までダウンロードを開始するにはどうすればよいですか?

4

2 に答える 2

1

HttpClient の場合:

if (offset > 0) {
    String startFrom = "bytes= " + offset + "-";
    if (expected >= 0) {
        startFrom += expected;
    }
    mHttpGet.addHeader("Range", startFrom);
    expectedStatusCode = HttpStatus.SC_PARTIAL_CONTENT;
}

ここで、mHttpGetは のインスタンスHttpGetoffsetは既にダウンロードしたバイト数、expected はファイルのサイズです。

HttpGet ヘッダーの Range フィールドについて:

Request only part of an entity. Bytes are numbered from 0.
于 2013-07-26T12:39:02.667 に答える
1

カイルがあなたの質問にコメントしたので、この回答を確認できます

基本的な原則は、ファイルの (http) 要求とともに、ヘッダーを追加することです。

 "Range", "bytes="+(file_length_to_start_from) +"-" + (file_length_to_stop)

または、file_length_to_stop (リンクされた回答の例) を省略して、その時点から残りのファイルを取得できます。

于 2013-07-26T12:39:16.100 に答える