NSURLSession---iOS-Apple蘋果官方文檔翻譯
NSURLSession
技術博客http://www.cnblogs.com/ChenYilong/
新浪微博http://weibo.com/luohanchenyilong
OutputStream
1. URL
2. Request
3. Connection:同步、異步=>NSData
會話Session
JSON XML HTML 下載文件 上傳文件
客戶端
服務器
使用URLSession全部的網絡訪問都是有緩存的,緩存文件自動保存在tmp文件夾中 URLSession自己實現的時候,就是少許屢次的!
任務1
使用defaultSessionConfiguration配置創建的會 話
退出到首頁時,任務會被自動掛起
從新進入應用時,任務會自動繼續
使用backgroundSessionConfiguration配 置創建的會話!
! 在退出首頁時,後臺的下載任務仍然進行中,一 直到下載完成 從新進入首頁時,纔會觸發代理方法,拷貝文件! ! 若是沒有下載完成,從新進入應用時,下載任務 會自動繼續!
• 對於一次性數據訪問,仍然可使用NSURLConnection! 若是要上傳文件,暫時仍是用AFN
• 1. NSURL
• 2. NSURLRequest
• 3. NSURLSession
• 4. NSURLSessionTask
• 5. resume啓動任務
• 若是是簡單的網絡數據GET、POST,仍然使用NSURLConnection
NSURLSession
• NSURLSession是iOS7中新的網絡接口,與NSURLConnection是並列的。
當程序在前臺時,NSURLSession與NSURLConnection能夠互相替代。
若是用戶強制將程序關閉,NSURLSession會被結束。
• NSURLSession提供的功能:
Ø 經過URL將數據下載到內存
Ø 經過URL將數據下載到文件系統
Ø 將數據上傳到指定URL
Ø 在後臺完成上述功能
NSURLSessionConfiguration
• 做用:用於定義和配置 NSURLSession 對象
• 每個NSURLSession對象均可以設置不一樣的NSURLSessionConfiguration,從而知足應用內不一樣類型的網絡請求
• NSURLSessionConfiguration的三種類型:
Ø defaultSessionConfiguration 默認session配置,相似 NSURLConnection
的標準配置,使用硬盤來存儲緩存數據
Ø ephemeralSessionConfiguration 臨時session配置,與默認配置相比, 這個配置不會將緩存、cookie等存在本地,只會存在內存裏,因此當 程序退出時,全部的數據都會消失
Ø backgroundSessionConfiguration 後臺session配置,與默認配置相似, 不一樣的是會在後臺開啓另外一個線程來處理網絡數據
NSURLSessionTask
• NSURLSession 使用 NSURLSessionTask 來具體執行網絡請求的任務
• NSURLSessionTask 支持網絡請求的取消、暫停和恢復,好比下載文 件暫停以後再恢復就可以自動從上次的進度繼續下載。 NSURLSessionTask還能獲取數據的讀取進度
• NSURLSessionTask的三種類型:
Ø NSURLSessionDataTask 處理通常的NSData數據對象,好比經過GET或
POST方式從服務器獲取JSON或XML返回等等,但不支持後臺獲取
Ø NSURLSessionUploadTask 用於上傳文件,支持後臺上傳
Ø NSURLSessionDownloadTask 用於下載文件,支持後臺下載
NSURLSession的使用
1. 使用NSURLSessionConfiguration來配置NSURLSession 對象
2. 用NSURLSession對象來啓動一個NSURLSessionTask對象
• 也可使用系統全局的sharedSession單例來知足大多數的需求
• 注:相比較NSURLConnection的返回處理,
NSURLSession提供了靈活 的數據返回方式,可使用簡單的block方式來處理返回數據,也能夠 使用更強大的delegate
技術博客http://www.cnblogs.com/ChenYilong/
新浪微博http://weibo.com/luohanchenyilong