断点续传基于http/1.1协议实现,实际使用中主要靠修改http 请求消息头的range:
指定第一个字节的位置和最后一个字节的位置,一般格式:
Range:(unit=first byte pos)-[last byte pos]
实际代码实现在请求下载时,读取待下载文件大小并给header赋值:
long size = file.length(); Header header = new BasicHeader("Range", "bytes=" + size + "-"); request.addHeader(header);
http协议在response里会包含Content-Range:
指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。在服务器向客户返回一个部分响应,它必须描述响应覆盖的范围和整个实体长度。一般格式:
Content-Range: bytes (unit first byte pos) - [last byte pos]/[entity legth]