iOS基礎 - NSURLSession

使用URLSession全部的網絡訪問都是有緩存的,緩存文件自動保存在tmp文件夾中,URLSession自己實現的時候,就是少許屢次的!緩存

 

l 使用defaultSessionConfiguration配置創建的會話服務器

退出到首頁時,任務會被自動掛起cookie

從新進入應用時,任務會自動繼續網絡

 

l 使用backgroundSessionConfiguration配置創建的會話session

在退出首頁時,後臺的下載任務仍然進行中,一直到下載完成spa

從新進入首頁時,纔會觸發代理方法,拷貝文件線程

若是沒有下載完成,從新進入應用時,下載任務會自動繼續代理

 

l 對於一次性數據訪問,仍然可使用NSURLConnection對象

 

l 1. NSURL接口

l 2. NSURLRequest

l 3. NSURLSession

l 4. NSURLSessionTask

l 5. resume啓動任務

 

l 若是是簡單的網絡數據GETPOST,仍然使用NSURLConnection

1、NSURLSession

NSURLSessioniOS7中新的網絡接口,與NSURLConnection是並列的。當程序在前臺時,NSURLSessionNSURLConnection能夠互相替代。若是用戶強制將程序關閉,NSURLSession會被結束。

NSURLSession提供的功能:

l 經過URL將數據下載到內存

l 經過URL將數據下載到文件系統

l 將數據上傳到指定URL

l 在後臺完成上述功能

2、NSURLSessionConfiguration

做用:用於定義和配置 NSURLSession 對象

每個NSURLSession對象均可以設置不一樣的NSURLSessionConfiguration,從而知足應用內不一樣類型的網絡請求

NSURLSessionConfiguration的三種類型:

l defaultSessionConfiguration 默認session配置,相似 NSURLConnection 的標準配置,使用硬盤來存儲緩存數據

l ephemeralSessionConfiguration 臨時session配置,與默認配置相比,這個配置不會將緩存、cookie等存在本地,只會存在內存裏,因此當程序退出時,全部的數據都會消失

l backgroundSessionConfiguration 後臺session配置,與默認配置相似,不一樣的是會在後臺開啓另外一個線程來處理網絡數據

3、NSURLSessionTask

NSURLSession 使用 NSURLSessionTask 來具體執行網絡請求的任務

NSURLSessionTask 支持網絡請求的取消、暫停和恢復,好比下載文件暫停以後再恢復就可以自動從上次的進度繼續下載。NSURLSessionTask還能獲取數據的讀取進度

NSURLSessionTask的三種類型:

l NSURLSessionDataTask 處理通常的NSData數據對象,好比經過GETPOST方式從服務器獲取JSONXML返回等等,但不支持後臺獲取

l NSURLSessionUploadTask 用於上傳文件,支持後臺上傳

l NSURLSessionDownloadTask 用於下載文件,支持後臺下載

4、NSURLSession的使用

使用NSURLSessionConfiguration來配置 NSURLSession 對象

NSURLSession對象來啓動一個NSURLSessionTask對象

也可使用系統全局的sharedSession單例來知足大多數的需求

注:相比較NSURLConnection的返回處理,NSURLSession提供了靈活的數據返回方式,可使用簡單的block方式來處理返回數據,也可使用更強大的delegate

相關文章
相關標籤/搜索