android 中断点续传理解

标签: android 断点 传理 | 发表时间:2015-05-27 17:02 | 作者:iaiai
出处:http://www.iteye.com
断点续传用到的知识点:
1.http返回的code码不为200,可能为206
2.使用RandomAccessFile设定文件大小并于指定位置开始读数据[randomAccessFile.seek(position)]。   
3.请求资源链接时指定所请求数据的返回范围。
    httpURLConnection.setRequestProperty("Range", "bytes=" + start + "-" + (contentLength - 1));

解释其中几个用到的属性:

Range : 用于客户端到服务器端的请求,可通过该字段指定下载文件的某一段大小,及其单位。典型的格式如:
Range: bytes=0-499 下载第0-499字节范围的内容
Range: bytes=500-999 下载第500-999字节范围的内容
Range: bytes=-500 下载最后500字节的内容
Range: bytes=500- 下载从第500字节开始到文件结束部分的内容

客户端请求:
httpURLConnection.setRequestProperty("Range", "bytes="+12+"-");


Accept-Ranges : 用于服务器端到客户端的应答,客户端通过该字段可以判断服务器是否支持断点续传

Accept-Ranges: bytes 表示支持以bytes为单位进行传输。
Accept-Ranges: none 表示不支持

Content-Ranges : 用于服务器端到客户端的应答,与Accept-Ranges在同一个报文内,通过该字段指定了返回的文件资源的字节范围。格式如下:

Content-Ranges: bytes 0-500/1234 大小为1234的文件的第0-500字节范围的内容
Content-Ranges: bytes 500-1233/1234 大小为1234字节的文件的第500-结尾范围的内容

ETag:简单的说,ETag可以用来标识/保证文件的唯一性或完整性,你可以把它看作是服务器为某个文件生产的唯一标识值,每次文件有更新该值就会变化。通过这种机制客户端可以检查某个文件在断点续传(当然它不仅仅用于断点续传)的前后是否有所改动:如果ETag改变了就应该重新下载整个文件以保证它的完整性

String etag = httpURLConnection.getHeaderField("ETag");
String acceptRange= httpURLConnection.getHeaderField("Accept-Ranges");
String contentRange = httpURLConnection.getHeaderField("content-range");


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [android 断点 传理] 推荐:

android 中断点续传理解

- - 移动开发 - ITeye博客
断点续传用到的知识点:. 1.http返回的code码不为200,可能为206. 2.使用RandomAccessFile设定文件大小并于指定位置开始读数据[randomAccessFile.seek(position)]. 3.请求资源链接时指定所请求数据的返回范围. Range : 用于客户端到服务器端的请求,可通过该字段指定下载文件的某一段大小,及其单位.

Android开发--多线程下载加断点续传

- - CSDN博客推荐文章
        文件下载在App应用中也用到很多,一般版本更新时多要用的文件下载来进行处理,以前也有看过很多大神有过该方面的博客,今天我也自己来实践一下,写的一般,还请大家多提意见,共同进步.         1.多线程下载:.                首先通过下载总线程数来划分文件的下载区域:利用int range = fileSize / threadCount;得到每一段下载量;每一段的位置是i * range到(i + 1) * rang  - 1,注意最后一段的位置是到filesize - 1;.

android开发步步为营之108:下载断点续传

- - CSDN博客推荐文章
        android开发过程中,下载是必备的功能,下载安装包,或者下载图片,假设用户下载过程中人为中断网络,或者网络不稳定中断下载任务,好的用户体验是从断开的地方继续下载,而不是又从头开始下载,因为比方说用户是拿4g来下载的,你一个游戏安装包100多M,用户下载了90M,突然手机没电了,充好电,又从头下载,那岂不是浪费用户的流量.

HTTP断点续传

- - CSDN博客互联网推荐文章
要实现断点续传的功能,通常都需要客户端记录下当前的下载进度,并在需要续传的时候通知服务端本次需要下载的内容片段. HTTP1.1协议(RFC2616)中定义了断点续传相关的HTTP头 Range和Content-Range字段,一个最简单的断点续传实现大概如下:.   1.客户端下载一个1024K的文件,已经下载了其中512K.

HTTP 断点续传

- - zzm
所谓断点续传,也就是要从文件已经下载的地方开始继续下载. 在以前版本的 HTTP 协议是不支持断点的,HTTP/1.1 开始就支持了. 一般断点下载时才用到 Range 和 Content-Range 实体头.   用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式:.   用于响应头,指定整个实体中的一部分的插入位置,他也指示了整个实体的长度.

HTTP 断点续传

- - zzm
所谓断点续传,也就是要从文件已经下载的地方开始继续下载. 在以前版本的 HTTP 协议是不支持断点的,HTTP/1.1 开始就支持了. 一般断点下载时才用到 Range 和 Content-Range 实体头.   用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式:.   用于响应头,指定整个实体中的一部分的插入位置,他也指示了整个实体的长度.

Android 遥控车

- CasparZ - LinuxTOY
您确定您真的会用 Android 手机玩赛车. 16 岁的法国学生 Jonathan Rico 使用 Android 手机通过蓝牙实现了对改装玩具汽车的遥控. 操控的方式和那些标榜的智能手机游戏一样,使用重力感应,差别是这次控制的是现实世界中的遥控汽车. 收藏到 del.icio.us |.

Android免费?毛

- Ruby - FeedzShare
来自: 36氪 - FeedzShare  . 发布时间:2011年08月17日,  已有 2 人推荐. 微软CEO Steve Ballmer在预测竞争对手产品时通常口无遮拦. 比如他去年抨击Google的Android战略时,很多人都不屑一顾. 接着Android蚕食了微软的地盘,后来又开始侵犯苹果的地盘.

GetEd2k (Android应用)

- 某牢 - eMule Fans 电骡爱好者
GetEd2k是一个Android应用程序,作者是anacletus. 此应用可以帮助你把网页中的电驴(eDonkey) 链接添加到你个人电脑的电驴客户端里,不过前提是你的客户端开启了用于远程控制的Web interface(Web服务器,网页接口,Web界面),当然,eMule(电骡), MLDonkey 和 aMule 都支持该功能,所以这三种主流电驴客户端的用户都可以使用GetEd2k.