CN109587232A - 基于iOS网络的文件断点续传方法 - Google Patents
基于iOS网络的文件断点续传方法 Download PDFInfo
- Publication number
- CN109587232A CN109587232A CN201811434164.XA CN201811434164A CN109587232A CN 109587232 A CN109587232 A CN 109587232A CN 201811434164 A CN201811434164 A CN 201811434164A CN 109587232 A CN109587232 A CN 109587232A
- Authority
- CN
- China
- Prior art keywords
- file
- mobile phone
- download
- downloading
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于iOS网络的文件断点续传方法,本发明采用iOS系统自带的网络请求,具有使用方便,稳定,兼容性较强,且可二次开发等优点;且相对于传统的断点续传方法,增加了文件压缩和缓存删除的步骤,来实现下载文件大小的压缩,自动清除长时间未使用的缓存文件,节省不必要的内存开支;并能够与服务器进行同步的操作;本发明既继承了iOS网络请求的优点和底层架构,又可以根据自己的独特需求,提供更多的实用方法,不仅提升了功能的数量,还提升了文件下载的性能和速度,不管是在开发效率还是应用程序本身的运行效率上都有较大的提升。
Description
技术领域
本发明涉及一种iOS系统中网络请求的处理技术,具体涉及一种基于iOS系统网络请求断点续传的方法。
背景技术
断点续传的理解可以分为两部分:一部分是断点,一部分是续传。断点的由来是在下载过程中,将一个下载文件分成了多个部分,同时进行多个部分一起的下载,当某个时间点,任务被暂停了,此时下载暂停的位置就是断点了。续传就是当一个未完成的下载任务再次开始时,会从上次的断点继续传送。
使用多线程断点续传下载的时候,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,多个线程并发可以占用服务器端更多资源,从而加快下载速度。
在下载(或上传)过程中,如果网络故障、电量不足等原因导致下载中断,这就需要使用到断点续传功能。下次启动时,可以从记录位置(已经下载的部分)开始,继续下载以后未下载的部分,避免重复部分的下载。断点续传实质就是能记录上一次已下载完成的位置。
在现有的文件断点续传的方法中,一般在断点续传过程中对文件不进行压缩,也不具有自动的清除长时间未使用的缓存文件的功能,这样在下载大文件时需要较大的内存,增加内存开销。
iOS系统中对网络请求的处理主要使用的是一些第三方的框架,这些第三方框架主要包括AFNetworking、SDWebimage、JSONKit;这些框架基本的工作流程是下载文件;文件处理(裁剪,压缩等);写入磁盘;从磁盘读取数据到内核缓冲区;从内核缓冲区复制到用户空间(内存级别拷贝)。
iOS系统自带网络请求,具有使用方便,稳定,兼容性较强,且可二次开发等优点;近年来也出现了一些基于iOS系统的断点续传的方法,但这些方法实质上都是基于第三方框架采用自主封装实现的文件断点续传,存在使用不便、兼容性不强,文件下载的性能和速度不高,程序运行效率较低等缺点。
因此,目前iOS系统还没有基于自带的网络请求框架实现网络断点续传自动检测与使用的方法。
发明内容
本发明的目的是解决现有技术中iOS系统还没有基于自带的网络请求框架实现网络断点续传自动检测与使用的方法的问题,提供一种于iOS系统自带网络请求断点续传的方法。
基于iOS网络的文件断点续传方法,包括以下步骤:
S1,手机端向服务器发送网络请求,手机端得到URL请求,然后根据URL请求创建一个新线程;
S2,手机端根据S1中得到的URL请求向指定地址请求下载文件,若发生网络异常,则提示报错信息,若网络正常,则访问到指定地址,准备下载文件;
S3,手机端开始下载文件,若出现下载异常,则记录当前下载位置,产生字段RANGE,并将当前下载位置保存手机内存后再传给服务器存储;
S4,手机端根据S3中所述字段RANGE作为Key判断文件是否存储于手机内存缓存中,若储存在手机内存缓存中则直接调用RANGE继续下载,若没有存储在手机内存缓存中,则重新下载;
S5,所述S4中手机端选择继续下载或重新下载时,若本地缓存的文件和服务器中的返回的字段不符,手机端可以向服务器重新请求文件,重新下载;若本地缓存的文件和服务器中的返回的字段相符,手机端根据服务器返回的字节继续下载文件;直至下载完成;
S6,所述S5下载完成后,手机端对下载的文件进行压缩处理并保存于手机内存中,并删除数据库中的下载记录;
S7,服务器设置一个删除时间阈值,检测每一个未下载完成的上一次服务器记录的时间和当前手机端记录的时间之间的间隔时间是否超过设置的删除时间阈值,若超过则自动清除缓存,根据本地存储字段来清除文件。
进一步地,所述S6具体为:手机端设置一个文件大小阈值,检测下载文件大小是否超过阈值,是则进入步骤S61,否则进入步骤S62;
S61,将下载的文件直接保存于手机内存;
S62,将下载的文件先进行大小压缩处理,再保存于手机内存。
与现有技术相比,本发明的有益效果:
1.本发明在基于iOS网络请求的基础之上,采用iOS系统自带的网络请求,具有使用方便,稳定,兼容性较强,且可二次开发等优点;且相对于传统的断点续传方法,增加了步骤S6和S7,来实现下载文件大小的压缩,自动清除长时间未使用的缓存文件,节省手机内存空间,从而节省不必要的内存开支;并能够与服务器进行同步的操作。
2.本发明既继承了iOS网络请求的优点和底层架构,又可以根据自己的独特需求,提供更多的实用方法,不仅提升了功能的数量,还提升了文件下载的性能和速度,不管是在开发效率还是应用程序本身的运行效率上都有较大的提升。
附图说明
图1是本发明基于iOS网络的文件断点续传方法的流程图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
实施例1:
如图1所示的基于iOS网络的文件断点续传方法的流程图,包括以下步骤:
S1,手机端向服务器发送网络请求,手机端得到URL请求,然后根据URL请求创建一个新线程,并记录每条线程的下载进度。
S2,手机端根据S1中得到的URL请求向指定地址请求下载文件,若发生网络异常,则提示报错信息,若网络正常,则访问到指定地址,准备下载文件;目的是判断手机网络是否联通,以便开始文件下载。
S3,手机端开始下载文件,若出现下载异常,则记录当前下载位置,产生字段RANGE,并将当前下载位置保存手机内存后再传给服务器存储。
S4,手机端根据S3中所述字段RANGE作为Key判断文件是否存储于手机内存缓存中,若储存在手机内存缓存中则直接调用RANGE继续下载,若没有存储在手机内存缓存中,则重新下载;根据字段RANGE作为Key判断文件是否存储于手机内存缓存中的目的是判断重新下载还是从出现异常断点的位置继续下载。
S5,所述S4中手机端选择继续下载或重新下载时,若本地缓存的文件和服务器中的返回的字段不符,手机端可以向服务器重新请求文件,重新下载;若本地缓存的文件和服务器中的返回的字段相符,手机端根据服务器返回的字节继续下载文件;直至下载完成。
S6,所述S5下载完成后,手机端对下载的文件进行压缩处理并保存于手机内存中,并删除数据库中的下载记录;具体为:手机端设置一个文件大小阈值,检测下载文件大小是否超过阈值,是则进入步骤S61,否则进入步骤S62;
S61,将下载的文件直接保存于手机内存;
S62,将下载的文件先进行大小压缩处理,再保存于手机内存;
步骤S6可以实现下载文件大小的压缩,节省手机内存空间。
S7,服务器设置一个删除时间阈值,检测每一个未下载完成的上一次服务器记录的时间和当前手机端记录的时间之间的间隔时间是否超过设置的删除时间阈值,若超过则自动清除缓存,根据本地存储字段来清除文件;根据设置的删除时间阈值来判断并自动清除长时间未使用的缓存文件,同样可以节省手机内存,从而节省不必要的内存开支。
断点续传在HTTP请求上和一般的下载有所不同,客户端浏览器传给Web服务器的时候要多加一条信息——从哪里开始(HTTP请求变量)。
HTTP请求是有一个Header的,里面有个Range属性是定义下载区域的,它接收的值是一个区间范围,比如:Range:bytes=0-10000。这样我们就可以按照一定的规则,将一个大文件拆分为若干很小的部分,然后分批次的下载,每个小块下载完成之后,再合并到文件中;这样即使下载中断了,重新下载时,也可以通过文件的字节长度来判断下载的起始点,然后重启断点续传的过程,直到最后完成下载过程。
本发明在基于iOS网络请求的基础之上,采用iOS系统自带的网络请求,具有使用方便,稳定,兼容性较强,且可二次开发等优点;且相对于传统的断点续传方法,增加了步骤S5和S7,来实现下载文件大小的压缩,自动清除长时间未使用的缓存文件,节省手机内存空间,从而节省不必要的内存开支;并能够与服务器进行同步的操作;本发明既继承了iOS网络请求的优点和底层架构,又可以根据自己的独特需求,提供更多的实用方法,不仅提升了功能的数量,还提升了文件下载的性能和速度,不管是在开发效率还是应用程序本身的运行效率上都有较大的提升。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (2)
1.基于iOS网络的文件断点续传方法,其特征在于:包括以下步骤:
S1,手机端向服务器发送网络请求,手机端得到URL请求,然后根据URL请求创建一个新线程;
S2,手机端根据S1中得到的URL请求向指定地址请求下载文件,若发生网络异常,则提示报错信息,若网络正常,则访问到指定地址,准备下载文件;
S3,手机端开始下载文件,若出现下载异常,则记录当前下载位置,产生字段RANGE,并将当前下载位置保存手机内存后再传给服务器存储;
S4,手机端根据S3中所述字段RANGE作为Key判断文件是否存储于手机内存缓存中,若储存在手机内存缓存中则直接调用RANGE继续下载,若没有存储在手机内存缓存中,则重新下载;
S5,所述S4中手机端选择继续下载或重新下载时,若本地缓存的文件和服务器中的返回的字段不符,手机端可以向服务器重新请求文件,重新下载;若本地缓存的文件和服务器中的返回的字段相符,手机端根据服务器返回的字节继续下载文件;直至下载完成;
S6,所述S5下载完成后,手机端对下载的文件进行压缩处理并保存于手机内存中,并删除数据库中的下载记录;
S7,服务器设置一个删除时间阈值,检测每一个未下载完成的上一次服务器记录的时间和当前手机端记录的时间之间的间隔时间是否超过设置的删除时间阈值,若超过则自动清除缓存,根据本地存储字段来清除文件。
2.根据权利要求1所述的基于iOS网络的文件断点续传方法,其特征在于:所述S6具体为:手机端设置一个文件大小阈值,检测下载文件大小是否超过阈值,是则进入步骤S61,否则进入步骤S62;
S61,将下载的文件直接保存于手机内存;
S62,将下载的文件先进行大小压缩处理,再保存于手机内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811434164.XA CN109587232A (zh) | 2018-11-28 | 2018-11-28 | 基于iOS网络的文件断点续传方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811434164.XA CN109587232A (zh) | 2018-11-28 | 2018-11-28 | 基于iOS网络的文件断点续传方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109587232A true CN109587232A (zh) | 2019-04-05 |
Family
ID=65924831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811434164.XA Pending CN109587232A (zh) | 2018-11-28 | 2018-11-28 | 基于iOS网络的文件断点续传方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109587232A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336871A (zh) * | 2019-07-01 | 2019-10-15 | 江苏满运软件科技有限公司 | 一种文件处理方法、装置、存储介质及电子设备 |
CN111193777A (zh) * | 2019-12-13 | 2020-05-22 | 佛山欧神诺云商科技有限公司 | 一种基于断点续传的文件下载方法、装置及存储介质 |
CN111245929A (zh) * | 2020-01-09 | 2020-06-05 | 卡斯柯信号有限公司 | 一种cocc非实时通道数据断点续传的实现方法 |
CN112073385A (zh) * | 2020-08-17 | 2020-12-11 | 浙江鸿城科技有限责任公司 | 一种基于基准缓存多态构建的协议格式快速编码的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130332755A1 (en) * | 2012-06-08 | 2013-12-12 | Apple Inc. | Power management enhancement |
CN104252513A (zh) * | 2013-11-11 | 2014-12-31 | 新华瑞德(北京)网络科技有限公司 | 文件缓存装置、系统及方法 |
CN105227680A (zh) * | 2015-10-26 | 2016-01-06 | 广东佳学信息科技有限公司 | 一种智能设备文件下载有效性控制方法 |
CN105786997A (zh) * | 2016-02-19 | 2016-07-20 | 四川长虹电器股份有限公司 | 基于iOS系统的图片缓存与压缩方法 |
-
2018
- 2018-11-28 CN CN201811434164.XA patent/CN109587232A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130332755A1 (en) * | 2012-06-08 | 2013-12-12 | Apple Inc. | Power management enhancement |
CN104252513A (zh) * | 2013-11-11 | 2014-12-31 | 新华瑞德(北京)网络科技有限公司 | 文件缓存装置、系统及方法 |
CN105227680A (zh) * | 2015-10-26 | 2016-01-06 | 广东佳学信息科技有限公司 | 一种智能设备文件下载有效性控制方法 |
CN105786997A (zh) * | 2016-02-19 | 2016-07-20 | 四川长虹电器股份有限公司 | 基于iOS系统的图片缓存与压缩方法 |
Non-Patent Citations (1)
Title |
---|
行走少年郎: "iOS网络--文件下载、断点下载的实现(一):NSURLConnection", 《HTTPS://BUJIGE.NET/BLOG/IOS-RESUME-DOWNLOAD-NSURLCONNECTION.HTML》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336871A (zh) * | 2019-07-01 | 2019-10-15 | 江苏满运软件科技有限公司 | 一种文件处理方法、装置、存储介质及电子设备 |
CN111193777A (zh) * | 2019-12-13 | 2020-05-22 | 佛山欧神诺云商科技有限公司 | 一种基于断点续传的文件下载方法、装置及存储介质 |
CN111193777B (zh) * | 2019-12-13 | 2021-02-05 | 佛山欧神诺云商科技有限公司 | 一种基于断点续传的文件下载方法、装置及存储介质 |
CN111245929A (zh) * | 2020-01-09 | 2020-06-05 | 卡斯柯信号有限公司 | 一种cocc非实时通道数据断点续传的实现方法 |
CN111245929B (zh) * | 2020-01-09 | 2022-11-01 | 卡斯柯信号有限公司 | 一种cocc非实时通道数据断点续传的实现方法 |
CN112073385A (zh) * | 2020-08-17 | 2020-12-11 | 浙江鸿城科技有限责任公司 | 一种基于基准缓存多态构建的协议格式快速编码的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109587232A (zh) | 基于iOS网络的文件断点续传方法 | |
CN102355426B (zh) | 实现离线文件传输的方法和系统 | |
CN105446750B (zh) | WebApp启动运行、生成镜像文件的方法和装置 | |
US20180081984A1 (en) | Methods and devices for preloading webpages | |
CN110336871A (zh) | 一种文件处理方法、装置、存储介质及电子设备 | |
CN105516734B (zh) | 一种视频可播放性的检测方法和装置 | |
CN104346345B (zh) | 数据的存储方法及装置 | |
CN106550052A (zh) | 一种基于opc ua的数据采集装置及方法 | |
US20170078354A1 (en) | Network Video Playback Method and Apparatus | |
CN110807128A (zh) | 视频的预加载方法、装置、设备和存储介质 | |
CN104683329A (zh) | 一种移动设备客户端的数据缓存方法及系统 | |
CN104768079A (zh) | 多媒体资源分发方法、装置及系统 | |
CN105786997A (zh) | 基于iOS系统的图片缓存与压缩方法 | |
CN107491549A (zh) | 一种数据处理方法及系统 | |
CN109947718A (zh) | 一种数据存储方法、存储平台及存储装置 | |
CN104778172A (zh) | 网页信息的预取处理方法、装置及对应的网页浏览装置 | |
CN107633102A (zh) | 一种读取元数据的方法、装置、系统及设备 | |
CN113821307B (zh) | 一种虚拟机镜像的快速导入方法、装置及设备 | |
CN101582924A (zh) | 一种移动终端数据传输方法和装置 | |
CN113590027B (zh) | 数据存储方法、数据获取方法、系统、设备和介质 | |
CN113051271B (zh) | 一种冷热数据分离方法、装置及其设备 | |
WO2024169393A1 (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN103209212B (zh) | 基于RIA的Web网管客户端中的数据缓存方法及系统 | |
CN108777802A (zh) | 一种缓存vr视频的方法和装置 | |
CN112269763A (zh) | 一种文件聚合方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190405 |