NSURL、NSURLRequest、NSURLSession和NSURLSessionTask
2016-02-17 11:13
579 查看
在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对象的状态、处理服务器的认证要求等。
在与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对象的状态、处理服务器的认证要求等。
相关文章推荐
- UIBezierPath和CAShapeLayer 阅读笔记
- UILabel、UIView的点击事件
- CSP-Bypass – BurpSuite CSP绕过检测插件
- easyui blur相关事件失效
- Android 更新UI的两种方法——handler和runOnUiThread()
- easyui datagrid checkbox
- RequiredFieldValidator 控件 CompareValidator 控件
- Property 'sqlMapClient' is required
- [LeetCode] Increasing Triplet Subsequence 递增的三元子序列
- 使用druid管理数据源,配置项removeAbandoned慎用
- easyui form load方法
- UITabBarController
- APIGuides-UserInterface-Settings-翻译一
- Android开发CompoundButton抽象类控件类的使用UI之Radio、Check、Toggle
- android 中resources管理(主要存在于res/value文件夹中)
- 最新 Sublime Text3 激活码 (Build 3103 有效)
- Media Queries 详解
- Android进阶之如何实现国际化和各国Values文件夹命名
- easyUI disabled相关表单元素
- Mockplus原型交互跟我做之6 - 快速给弹出面板命名