在iOS开发中通常我们都需要从Web服务器获取数据,获取数据时都需要用到NSURL、NSURLRequest、NSURLSession和NSURLSessionTask四个类。
在与web服务器进行通信的过程中,这些类各自扮演了重要的角色。
- NSURL对象负责以URL的格式保存web应用的位置。对大多数web服务,URL将包含基地址(base address)、web应用名和需要传送的参数。
- NSURLRequest对象负责保存需要传送给web服务器的全部数据,这些数据包括:一个NSURL对象、缓存方案(caching policy)、等待web服务器响应的最长时间和需要通过HTTP协议传送的额外信息(NSMutableURLRequest 是 NSURLRequest 的可变子类)。
- 每一个NSURLSessionTask对象都表示一个NSURLRequest 的生命周期。NSURLSessionTask可以跟踪NSURLRequest的状态,还可以对NSURLRequest执行取消、暂停和继续操作。NSURLSessionTask有多种不同功能 的子类,包括NSURLSessionDataTask,NSURLSessionUploadTask 和 NSURLSessionUDownloadTask 。
- NSURLSession对象可以看作是一个生产NSURLSessionTask对象的工厂。可以设置其生产出的NSURLSessionTask对象的通用属性,例如请求头的内容、是否允许在蜂窝网络下发送请求等。NSURLSession对象还有一个功能强大的委托,可以跟踪NSURLSessionTask对象的状态、处理服务器的认证要求等。