標籤:download 網路 jpg 運行 ica ges str for 退出
NSURLSession 在ios7的時候,推出這個。主要是用來替換NSURLConnection。
NSURLSession是一組相互依賴的類,它的大部分組件和NSURLConnection中的組件相同如NSURLRequest,NSURLCache等。而NSURLSession的不同之處在於,它將NSURLConnection替換為NSURLSession和NSURLSessionConfiguration,以及3個NSURLSessionTask的子類:NSURLSessionDataTask, NSURLSessionUploadTask, 和NSURLSessionDownloadTask。
關於圖例:
NSURLSession由NSURLSessionConfiguration和可選代理(optional delegate)構成。再根據你的網路需求通過NSURLSessionTask來建立session。
1、NSURLSessionConfiguration
簡介
常用屬性
identifie:設定背景工作的標識符
requestCachePolicy:設定緩衝策略
timeoutIntervalForRequest:佈建要求逾時時間長度
networkServiceType:設定網路服務類型
HTTPAdditionalHeaders:設定頭部參數
allowsCellularAccess:設定是否在非無線情況下請求網路(使用蜂窩資料)
HTTPMaximumConnectionsPerHost:設定主機網路連接個數
discretionary: discretionary屬性為YES時表示當程式在後台運作時由系統自己選擇最佳的網路連接配置,該屬性可以節省通過蜂窩串連的頻寬。在使用後台傳輸資料的時候,建議使用discretionary屬性,而不是allowsCellularAccess屬性,因為它會把WiFi和電源可用性考慮在內。這個標誌允許系統為分配任務進行效能最佳化。這意味著只有當裝置有足夠電量時,裝置才通過Wifi進行資料轉送。如果電量低,或者只僅有一個蜂窩串連,傳輸任務是不會啟動並執行。後台傳輸總是在discretionary模式下運行。
常用方法
- setHTTPAdditionalHeaders:設定頭部/參數
// 設定所有的請求只接收JSON資料;
// 設定網路請求api所需的頭部參數;
[configuration setHTTPAdditionalHeaders:@{@"Accept": @"application/json", @"apikey": @"159d95a8c050074fe3ca0df0d901fc62"}];
2、NSURLSession 網路會話
- NSURLSession是為了代替NSURLConnection而設計的。Sessions的所有工作都是通過NSURLSessionTask對象完成。可以用block,delegate,或者兩者混合來建立task。
學習NSURLSession(1)