我想在android上实现一个分布式下载管理器,它启动一定字节长度的下载。因此,可以通过这种方式下载部分文件,而不仅仅是从http请求的开始到结束。
没有什么创新之处,我只是不知道该怎么做。(也不是bitorrent )
在库中,如何从服务器获取文件的长度,然后从文件中间开始下载到最后?
发布于 2013-07-26 12:39:02
使用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.发布于 2013-07-26 12:39:16
正如凯尔对你的问题所评论的那样,你可以查看this answer
基本原则是,除了对文件的(http)请求之外,还要添加报头
"Range", "bytes="+(file_length_to_start_from) +"-" + (file_length_to_stop)或者,您可以省略file_length_to_stop (在链接的应答示例中),从那时起获取文件的其余部分。
https://stackoverflow.com/questions/17881295
复制相似问题