前些天刚看完网络请求这一块,那么想把自己所学到的一些东西呢分享一下,同时也希望如果有错误的地方还请一定不要吝啬指教!!!
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:独特之处在于,它会创建一个后台会话。后台会话不同于常规的,普通的会话,它甚至可以在应用程序挂起,退出,崩溃的情况下运行上传和下载任务。初始化时指定的标识符,被用于向任何可能在进程外恢复后台传输的守护进程提供上下文
网友评论