iOS开发-网络请求-NSURLSession详解

作者: Small_Potato | 来源:发表于2016-04-01 17:51 被阅读1641次

        前些天刚看完网络请求这一块,那么想把自己所学到的一些东西呢分享一下,同时也希望如果有错误的地方还请一定不要吝啬指教!!!

        iOS网络请求大致也就两类:

            NSURLConntet:是2003年伴随着Safari一起发行的网络开发API,距今已经有十一年,不过现在已经被NSURLSession取代了.

            NSURLSession:现在主流的网络请求方式,她提供了配置会话缓存.协议.cookie和证书能力.这使得网络架构和应用程序可以独立工作、互不干扰。另外,NSURLSession另一个重要的部分是会话任务,它负责加载数据,在客户端和服务器端进行文件的上传下载。

    1.1

        如图,是NSURLSession的三个任务,数据获取(NSURLSessionData),文件上传(NSURLSessionUploadTask),文件下载(NSURLSessionDownloadTask),这三个类都是NSURLSessionTask这个抽象类的子类,相比直接使用NSURLConnection,NSURLSessionTask支持任务的暂停、取消和恢复,并且默认任务运行在其他非主线程中.

        好了,下面直接上代码用来说明.首先是数据请求:1.2

       

    1.2

        好了,其实上传文件和获取数据的话可以直接使用AFNetworking,他是一个非常受欢迎的轻量级的iOS、Mac OS X网络通信类库。它建立在NSURLConnection、NSOperation,NSURLSession以及其技术的基础上,有着精心设计的模块结构和功能丰富的API,让很多网络通信功能的实现变得十分简单。如果有兴趣了解如何自己实现上传文件的话可以看下这篇文章,上面讲的很详细. 这篇文章终点讨论如何下载文件(视频,音频以及图片),不多说,直接上代码.

        NSURLSession支持进程三种会话:

            defaultSessionConfiguration:进程内会话(默认会话),用硬盘来缓存数据。

            ephemeralSessionConfiguration:返回一个预设配置,没有持久性存储的缓存,Cookie或证书。这对于实现像秘密浏览功能的功能来说,是很理想的(不会将cookie、缓存储存到本地,只会放到内存中,当应用程序退出后数据也会消失)

            backgroundSessionConfiguration:独特之处在于,它会创建一个后台会话。后台会话不同于常规的,普通的会话,它甚至可以在应用程序挂起,退出,崩溃的情况下运行上传和下载任务。初始化时指定的标识符,被用于向任何可能在进程外恢复后台传输的守护进程提供上下文

        github地址  


       


    相关文章

      网友评论

        本文标题:iOS开发-网络请求-NSURLSession详解

        本文链接:https://www.haomeiwen.com/subject/dfsylttx.html