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;