iOS开发之网络编程--小文件下载
2016-03-11 00:00
477 查看
文件下载方式:
如果下载的文件比较小,下载方式:直接用NSData的 +(id)dataWithContentsOfURL:(NSURL*)url;
利用NSURLConnection发送一个HTTP请求去下载
如果是下载图片,还可以利用SDWebImage框架(本文这里不描述)
如果下载的文件比较大,下载方式:
使用NSConnectionDataDelegate代理方法(本文这里描述下载15M左右的文件,也算是小文件)
建议使用NSURLSession或者第三方框架(本文这里不描述)
代码示例:
先给出用来做代码练习的API接口小图片:http://img2.duitang.com/uploads/blog/201310/18/20131018213446smUw4.thumb.7000.jpeg
MP4小视频(15M左右):http://120.25.226.186:32812/resources/videos/minion_03.mp4
1、下面展示一下下载小图片这样小文件的两种方式:
对于第二种通过NSURLConnection的异步请求的方式也可以请求稍大一些的文件,比如MP4小视频文件,但是因为文件比较大,所以会出现等好久才会得到结果,其实就是
出现了阻塞,因为是异步请求,所以不会影响主线程,如果用的是同步请求,那就会影响主线程喽。你可以试试,这里就不出源码了。
2、再接下来介绍一下如何使用NSURLConnectionDataDelegate代理方法来对这个MP4小视频(15M左右)稍大一些的文件
注意:仅仅是稍大一些的文件,但是下面的过程,通过打开沙盒文件,你会发现,下面的下载方式,是等待内存中加载完全部下载的数据,最后一并放入沙盒中存储的。
这个过程,绝对不适合更大的文件下载,比如下载几百M的视频文件,肯定会出问题的。
同时展示一下打印结果:
源码百度云分享链接: http://pan.baidu.com/s/1jHycCIU 密码: 9kum
关于使用NSURLConnection实现大文件下载请看下一篇随笔:iOS开发之网络编程--使用NSURLConnection实现大文件下载
相关文章推荐
- iOS开发网络篇—GET请求和POST请求
- iOS开发之网络数据解析(一)--JSON解析简介
- 浏览器怎么决定发送HTTP的Accept-Language请求头
- linux中的网络基础
- c++中的常量折叠 http://blog.csdn.net/yafeng_jiang/article/details/7101964
- 计算机网络之网络层
- 结构体对齐详解http://www.cnblogs.com/motadou/archive/2009/01/17/1558438.html
- 20160310_开创自己的网络文章空间
- Failed to issue method call: Unit httpd.service failed to load: No such file or directory.
- tcp校验和
- 结合网页排名来做社会网络分析,挖掘核心人物
- 阻塞,非阻塞connect()和accept()
- AFNetworking3.0 如何取消单个网络请求
- 对计算机网络的一些认识
- OSI(Open System Interconnection)网络模型
- 火狐浏览器中添加httprequest的方法
- 学习UNITY3D网络插件photon pun和PhotonServer<三>
- 学习UNITY3D网络插件photon pun和PhotonServer<一>
- 学习UNITY3D网络插件photon pun和PhotonServer<二>
- Php和httpd.conf的配置