1.NSURLSession: ios7.0以后 代替URL connection html
用于替代NSURLConnection 支持后台运行网络 暂停、中止、重启网络任务、 再也不须要本身封装NSOperation ios
2.NSURLSessionweb
能够发起如下任务 默认全部的任务都是挂起的 DataTask UploadTask DownloadTaskjson
3.NSURLSessionConfiguration 配置请求信息服务器
4.DataTask.网络
getDemo://建立session sharedSessionsession
//生成dataTask/*url ;完成时候的回调*/框架
//开启任务[dataTask resume];异步
postDemo://建立session//请求//get->post//请求体//开启任务resumepost
5.downloadTask下载文件:异步执行
//建立session
//下载任务/*location 文件下载到本地的路径;response响应头;错误*/
//拷贝文件cache
//文件保存路径/*文件路径;拷贝到哪里;错误*/
//开启任务
问题:文件确实下载 可是文件会自动删除(保证用户闪存有一个好的利用率)
在block返回以前要拷贝 打开文件 若是block执行完成以后 文件就不删除了
6.session下载进度使用代理方式
//session设置代理/*Configuration session的配置信息;代理;代理队列 指定代理方法将在哪一个队列上执行 指定线程 */
下载的过程当中 必定是在子线程 可是能够指定代理方法 在哪一个队列上执行
//默认的session配置信息
//downloadTask
//resume
//当下载task指定了block回调 就不会执行代理方法
/*didWriteData 本次获得的数据长度;totalBytesWritten 已经下载了多少数据的长度;totalBytesExpectedToWrite 文件的总长度*/进度
//及时把文件拷贝到指定地方 不然文件会被删除
7.断点续传
暂停cancelByProducingResumeData :resumeData返回已经下载数据的信息 不是文件自己 是已经下载的文件信息 包括url文件长度 etag
继续downloadTaskWithResumeData:从新建立downloadTask而且把resumeData已经下载的文件信息告诉他
问题(1):开始-暂停-暂停-继续-崩溃
缘由:点击屡次暂停 resumeData为空 downloadTask建立报错
(2)继续-崩溃
缘由:resumeData为空 downloadTask建立报错
(3)开始-暂停-继续屡次 进度混乱
缘由:开启了多个下载任务
8.压缩和解压缩
第三方框架 底层是c语言
压缩文件/*指定zip包生成的
路径;要打包的文件夹路径*/
9.webDav配置 把图片上传到webdav服务器上
//建立一个session
//上传到webdav服务器 代表要向uploads文件夹下建立一个03.jpg
//request get->put
//生成验证信息的字符串
//base64编码 NSData *data
10.删除webdav上面的图片资源
/*请求 get->delete;请求头加验证信息;dataTask*/
11.HTTPS:
(1)信任服务器返回的证书(公钥)
(2) 客户端产生随机密钥
(3)公钥对 随机密钥进行对称加密(rsa)
(4) 把用公钥加密后的随机密钥发送给服务器
(5)使用随机密钥加密数据和服务器交互
12.https代理:/*challenge从服务器得到公钥的信息;completionHandler 把验证结果告诉服务器*/
//判断验证方式
//直接选择相信服务器 须要生成对称加密的密钥 交给服务器
//把密钥交给服务器 填0表示显现服务器
13.AFN
//找到对应的管理类当前manager是connection去实现
AFN默认会把数据进行json反序列化
//追加文件的内容到响应体
14.AFN-session Demo
//manager 用session来实现 使用方式不变/*请求;进度NSProgress** (&progress);指定下载文件的地址(NSString->URL 本地路径不能使用URLWithString);完成下载的回调*/
15.下载进度
kvo观察者模式/*要观察他的对象;观察哪一个key;选项 选择观察新的值或者旧的值;其余参数
//当被观察的对象发生改变 就会调用此方法/*观察哪一个key;观察的对象;变化;其余参数*/
16.访问百度
//manager 用session来实现 使用方式不变
//指定序列化器
//默认AFN是对json反序列化 html不能直接序列化
//xml解析
NSXMLParser*parser = responseObject;
parser.delegate = self;