android - Http 中断/parial 文件下载 - Android/iPhone 上的 HTTP "Range" header

标签 android http get http-headers

当我们从网络服务器下载文件时,它首先存储在手机内存中,并在特定时刻将数据刷新到 SD 卡上,以免填满 RAM。

但当连接中断、用户将手机设置为飞行模式、离开WLAN覆盖区域等时,通常文件下载必须从头开始。

这对用户来说既浪费时间和金钱,又浪费网络资源和手机电池。

为了能够继续中断的下载,我们计划使用 Range HTTP header 。正确的用法是什么?

我们是否需要从 Content-Length header 中记住文件的原始长度,或者我们应该发送 HEAD 代替(这应该给我们实际的文件大小。 ..) 或者不需要存储原始大小并在 header 后发送下一个 HTTP GET 请求并跳过最终文件大小(下面我假设已经下载了 555 字节):

Accept-Ranges:bytes
Range: 555-

谢谢和问候,

斯特恩

最佳答案

你不需要完整的文件大小,但你应该使用

Range: bytes=555-

header,你还必须验证服务器是否可以处理你的请求,并且它回复了

HTTP 206 Partial Content

关于android - Http 中断/parial 文件下载 - Android/iPhone 上的 HTTP "Range" header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9924105/

相关文章:

javascript - 从 api 检索 Post 请求响应并将其传递给另一个 post 请求以传递给 angular8 应用程序

php - INT 的 GET 参数不想更新

jquery $.GET 加载顺序

java - 错误 :Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug' . >

android - 如何确定调用手机号码的电话是本地电话还是 STD 或 ISD

android - 由于Firebase分析导致Gradle失败

Python 3.3 HTTP Cookie 错误

android - 带有 flash 元素的 webview 的编程屏幕截图

java - 从 java.io.IOException 中提取 HTTP 状态代码

javascript - 为什么 json_decode 返回带有哈希符号的 NULL