學習NSURLSession(1)

來源:互聯網
上載者:User

標籤: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

簡介
  • NSURLSessionConfiguration主要用於配置NSURLSession會話屬性,其工作模式主要有三種:

    • 預設模式(defaultSessionConfiguration):使用硬碟來快取資料,可以使用緩衝的Cache,Cookie,鑒權。

    • 及時模式(ephemeralSessionConfiguration): 臨時session配置,與預設配置相比,這個配置不會將緩衝、cookie等存在本地,只會存在記憶體裡,所以當程式退出時,所有的資料都會消失

    • 後台模式(backgroundSessionConfiguration):在後台完成上傳下載,建立Configuration對象的時候需要給一個NSString的ID用於追蹤完成工作的Session是哪一個。 做遠程push通知或是應用程式掛起的時候就要用到這個configuration。

常用屬性
  • 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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.