Android OkHttp + Retrofit 断点续传

释放双眼,带上耳机,听听看~!

前面我们已经知道如何使用OkHttp+Retrofit下载文件
下载文件时,可能会遇到一些意外情况,比如网络错误或是用户暂停了下载。
再次启动下载,如果又要从头开始,会白白浪费前面下载好的内容。
断点续传功能可以从上次停止的地方继续下载文件。

http范围请求

Range 是一个请求首部,告知服务器返回文件的哪一部分。
在一个 Range 首部中,可以一次性请求多个部分,服务器会以 multipart 文件的形式将其返回。
如果服务器返回的是范围响应,需要使用 206 Partial Content 状态码。
假如所请求的范围不合法,那么服务器会返回 416 Range Not Satisfiable 状态码,表示客户端错误。
服务器允许忽略Range首部,从而返回整个文件,状态码用200。

示例

Range: <unit>=<range-start>-
Range: <unit>=<range-start>-<range-end>
Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end>
Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end>, <range-start>-<range-end>

发起请求时,一般Range的内容写成 bytes=0-100 这样的形式。
或者请求多个部分时,指定多个范围。

Range: bytes=200-1000, 2000-6576, 19000-

Content-Range 表示主体长度或者尺寸。

参考:

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Range

 

Android OkHttp + Retrofit 使用示例

Android OkHttp + Retrofit 取消请求的方法

Android OkHttp + Retrofit 下载文件与进度监听

Android OkHttp + Retrofit 断点续传

人已赞赏
Android文章

Android OkHttp + Retrofit 下载文件与进度监听

2019-11-1 13:00:11

Android文章

Android开发反射更换Android全局字体

2019-11-3 13:58:04

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索