2012-03-29 54 views
1

当我们从网络服务器上下载文件时,它首先存储在手机内存中,并且在定义时刻,数据在SD卡上刷新以不填满内存。HTTP中断/文件下载 - Android/iPhone上的HTTP“范围”标头

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

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

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

我们是否需要从Content-Length头记住文件的原始长度或者我们应该送HEAD代替(即应该给我们的实际文件大小......)或者有没有需要存储的原始大小和发送在接下来的HTTP GET请求下列头并跳过最终文件大小(下面我假设555bytes已经下载):

Accept-Ranges:bytes 
Range: 555- 

感谢和问候,

斯登

回答

1

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

Range: bytes=555- 

头,你还必须验证服务器可以处理您的请求,并且它与

HTTP 206 Partial Content 
回复