设为首页 加入收藏

TOP

网络请求相关小结2(一)
2017-10-13 10:28:47 】 浏览:8617
Tags:网络 请求 相关 小结

1 NSURLConnettion

            NSURLConnettion是 Core Foundation/CFNetwork框架 API 之上的一个抽象. NSURLConnettion是用来指代 Foundation 框架中的一系列组件: NSURLRequest,NSURLResponse,NSURLProtocol,NSURLCache,NSHTTPCookieStorage,NSURLCredentialStorage 以及同名类 NSURLConnection.

            注1:原来的使用原理:一个 NSURLRequest 发送给 NSURLConnect.被委托对象(遵守 NSURLConnectionDeledate 和 NSURLConnectionDataDeledate 非正式协议)异步返回一个 NSURLResponce 和服务器的 NSData.

            注2:在一个请求发送给服务器的时候,系统会先查询缓存信息,然后根据策略和可用写的不同,当在缓存中找到响应则直接返回.否则,系统将根据我们的策略,将接到请求后的响应缓存到并返回.

注3:在把请求发送给服务器的时候,服务器会发出鉴权查询,这可以有共享的 cookie 或者机密存储来自动响应,或者由被委托的对象来响应.发送中的请求,也可以被 NSURLProtocol 拦截,以便在必要的时候,无缝的改变其请求.

NSURLConnettion是使用步骤:

1 获取一个 URL

2 通过 URL 创建一个请求

3 用NSURLConnettion发送请求

2 NSURLSession

            和 NSURLConnection 一样, NSURLSession 不仅仅包括同名的 NSURLSession, 还包括NSURLRequest 和 NSURLCache. 同时将NSURLConnection 对应为NSURLSession,NSURLSessionFiguration 以及NSURLSession 的三个子类,即NSURLSessionTask,NSURLSessionUpLoadTask 和 NSULSessionDownLoadTask.

            和 NSURLConnection 相比, NSURLSession 最大的改变可以配置每一个缓存的session 缓存, cookie 值,协议以及证书策略甚至夸程序共享这些信息.这保证了程序和网络框架之间的相互独立.每一个 NSURLSession 有一个 NSURLSessionConfiguration 来进行初始化, NSURLSessionConfiguration指定了策略,以及在移动设备上增强性能的选项.

            NSURLSession 的另一个特点就是 session Task, 用来处理的上传和下载.和 NSURLConnection 最大的不同之处在于,所有的 task 共享其创造者 NSURLSession.

            注: NSURLSessionTask分析

            NSURLSessionTask 是一个抽象类,里面包含NSURLSessionDataTask  , NSURLSessionDownLoadTask 以及 NSURLSessionUpLoadTask三个子类.这三个子类封装了网络的基本任务:获取数据,上传和下载

 

            使用原理:当一个 NSURLSessionDataTask 完成的时候,会有一个返回的数据,一个 NSURLSessionDownLoadTask 完成的时候会带一个临时文件的路径.文件上传的时候也会返回一定的数据,所以可以说 NSURLSessionUpLoadTask 是继承于 NSURLSessionDataTask.所有的 Task 都可以取消,暂停和恢复,当暂停的时候回记录当前的位置,以便下载继续从此点继续下载.需要说明的是 NSURLSessionTask 是有 NSURLSession 创建的.

            NSURLSession的使用步骤:和 NSURLConnection 基本相似,然后使用resume方法来讲它运行.

            1 获取一个 URL

            2 通过 URL 创建一个请求

            2.1 创建一个上传的NSData(UpLoad 上传的时候用)

            3 创建一个NSURLSession的单例

            4 通过NSURLSession发送请求(注:使用 resume)

实例:

1 DataTask

NSURL *URL = [NSURL URLWithString:@"http://example.com"];

 NSURLRequest *request = [NSURLRequest requestWithURL:URL];

 

 NSURLSession *session = [NSURLSession sharedSession];

 NSURLSessionDataTask *task = [session dataTaskWithRequest:r

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇iOS 支持 IPv6 下一篇【原】iOS学习45之多媒体操作

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目