特定のバイト長でダウンロードを開始する分散ダウンロード マネージャーを Android に実装したいと思います。したがって、この方法では、http 要求の最初から最後までだけではなく、ファイルの一部をダウンロードできます。
それについて革新的なことは何もありません。私はそれを行う方法を知りません。(bitorrentでもありません)
Java http apache ライブラリで、サーバーからファイルの長さを取得し、ファイルの途中から最後までダウンロードを開始するにはどうすればよいですか?
特定のバイト長でダウンロードを開始する分散ダウンロード マネージャーを Android に実装したいと思います。したがって、この方法では、http 要求の最初から最後までだけではなく、ファイルの一部をダウンロードできます。
それについて革新的なことは何もありません。私はそれを行う方法を知りません。(bitorrentでもありません)
Java http apache ライブラリで、サーバーからファイルの長さを取得し、ファイルの途中から最後までダウンロードを開始するにはどうすればよいですか?
HttpClient の場合:
if (offset > 0) {
String startFrom = "bytes= " + offset + "-";
if (expected >= 0) {
startFrom += expected;
}
mHttpGet.addHeader("Range", startFrom);
expectedStatusCode = HttpStatus.SC_PARTIAL_CONTENT;
}
ここで、mHttpGet
は のインスタンスHttpGet
、offset
は既にダウンロードしたバイト数、expected
はファイルのサイズです。
HttpGet ヘッダーの Range フィールドについて:
Request only part of an entity. Bytes are numbered from 0.
カイルがあなたの質問にコメントしたので、この回答を確認できます
基本的な原則は、ファイルの (http) 要求とともに、ヘッダーを追加することです。
"Range", "bytes="+(file_length_to_start_from) +"-" + (file_length_to_stop)
または、file_length_to_stop (リンクされた回答の例) を省略して、その時点から残りのファイルを取得できます。