IOS開發中 session&HTTPS&AFN

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;

相關文章
相關標籤/搜索