AFURLSessionManager類說明


繼承:NSObject


遵照:NSCopying,NSSecureCoding,NSURLSessionDataDelegate,NSURLSessionDelegate,NSURLSessionDownloadDelegate,NSURLSessionTaskDelegate


聲明處:AFURLSessionManager.h


概述

AFURLSessionManager創建和管理一個以指定的NSURLSessionConfiguration對象為基礎的NSURLSession對象,其中NSURLSessionConfiguration對象遵照<NSURLSessionTaskDelegate>,<NSURLSessionDataDelegate>, <NSURLSessionDownloadDelegate>和<NSURLSessionDelegate>.

子類必讀

AFHTTPSessionManager是為HTTP請求添加具體功能的基礎方法。如果你想為HTTP實現明確的功能來擴展AFURLSeesionManager,請考慮用AFHTTPSessionManager子類來代替。

NSURLSession 和 NSURLSessionTask代理方法

AFURLSesssionManager實現了以下的代理方法。

NSURLSessionDelegate

  • URLSession:didBecomeInvalidWithError:
  • URLSession:didReceiveChallenge:completionHandler:
  • URLSessionDidFinishEventsForBackgroundURLSession:

NSURLSessionTaskDelegate

  • URLSession:willPerformHTTPRedirection:newRequest:completionHandler:
  • URLSession:task:didReceiveChallenge:completionHandler:
  • URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:
  • URLSession:task:needNewBodyStream:
  • URLSession:task:didCompleteWithError:

NSURLSessionDataDelegate

  • URLSession:dataTask:didReceiveResponse:completionHandler:
  • URLSession:dataTask:didBecomeDownloadTask:
  • URLSession:dataTask:didReceiveData:
  • URLSession:dataTask:willCacheResponse:completionHandler:

NSURLSessionDownloadDelegate

  • URLSession:downloadTask:didFinishDownloadingToURL:
  • URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesWritten:totalBytesExpectedToWrite:
  • URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:

如果任意方法在子類中被重載,那么必須先調用super實現方法,再實現子類的內容。

網絡可達性監控

通過reachabilityManager屬性監聽網絡可達性狀態和改變監控器是否為有效。應用可能為了保護或掛起任意的向外請求而選擇去監控網絡可達性條件。詳見AFNetworkReachabilityManager。

NSCoding說明

編碼管理不能包含任何塊屬性。當使用-initWithCoder:或NSKeyedUnarchiver時確保設置代理回調的塊。

NSCopying說明

  • -copy-copyWithZone返回一個包含從原始的配置信息創建的新的NSURLSession的新的會話管理實例。
  • 執行拷貝不能包含任何代理回調塊,因為塊經常是對self的強引用,在拷貝中可能導致非主觀的將指針指向原始的會話的錯誤。

警告:會話在后臺執行時,會話管理必須擁有這些會話。這個可以通過創建一個程序的全局可用的會話管理或一個共享單例來實現。

任務

其他方法

  • session 屬性
  • operationQueue 屬性
  • responseSerializer 屬性

管理安全協議

  • securityPolicy 屬性

監視網絡可達性

  • reachabilityManager 屬性

獲取會話任務

  • tasks 屬性
  • dataTasks 屬性
  • uploadTasks 屬性
    *downloadTasks 屬性

管理回調隊列

  • completionQueue 屬性
  • completionGroup 屬性

工作系統錯誤

  • attemptsToRecreateUploadTasksForBackgroundSessions 屬性

初始化

– initWithSessionConfiguration:
– invalidateSessionCancelingTasks:

執行數據任務

– dataTaskWithRequest:completionHandler:
– dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:

執行上傳任務

– uploadTaskWithRequest:fromFile:progress:completionHandler:
– uploadTaskWithRequest:fromData:progress:completionHandler:
– uploadTaskWithStreamedRequest:progress:completionHandler:

執行下載任務

– downloadTaskWithRequest:progress:destination:completionHandler:
– downloadTaskWithResumeData:progress:destination:completionHandler:

獲取任務的進度

– uploadProgressForTask:
– downloadProgressForTask:

設置會話代理回調

– setSessionDidBecomeInvalidBlock:
– setSessionDidReceiveAuthenticationChallengeBlock:

設置任務代理回調

– setTaskNeedNewBodyStreamBlock:
– setTaskWillPerformHTTPRedirectionBlock:
– setTaskDidReceiveAuthenticationChallengeBlock:
– setTaskDidSendBodyDataBlock:
– setTaskDidCompleteBlock:

設置數據任務代理回調

– setDataTaskDidReceiveResponseBlock:
– setDataTaskDidBecomeDownloadTaskBlock:
– setDataTaskDidReceiveDataBlock:
– setDataTaskWillCacheResponseBlock:
– setDidFinishEventsForBackgroundURLSessionBlock:

設置下載任務代理回調

– setDownloadTaskDidFinishDownloadingBlock:
– setDownloadTaskDidWriteDataBlock:
– setDownloadTaskDidResumeBlock:

屬性

attemptsToRecreateUploadTasksForBackgroundSessions

@property (nonatomic, assign) BOOL attemptsToRecreateUploadTasksForBackgroundSessions

討論

是否在初始化時返回nil時,試圖重新為后臺會話創建上傳任務。 默認值為NO。

錯誤:在iOS 7.0有一個bug,為后臺任務創建上傳任務時可能為nil。作為一個解決方法,當這個屬性設置為YES時,AFNetworking將遵照蘋果公司的建議嘗試重新創建任務。

同見

https://github.com/AFNetworking/AFNetworking/issues/1675

聲明處

AFURLSessionManager.h

completionGroup

@property (nonatomic, strong, nullable) dispatch_group_t completionGroup

討論

completionBlock的派發組。如果為NULL,使用一個私有的派發組。

聲明處

AFURLSessionManager.h

completionQueue

@property (nonatomic, strong, nullable) dispatch_queue_t completionQueue

討論

completionBlock的派發隊列。如果為NULL,使用系統主隊列。

聲明處

AFURLSessionManager.h

dataTasks

@property (readonly, nonatomic, strong) NSArray<NSURLSessionDataTask*> *dataTasks

討論

數據任務的運行當前被執行會話管理。

聲明處

AFURLSessionManager.h

downloadTasks

@property (readonly, nonatomic, strong) NSArray<NSURLSessionDownloadTask*> *downloadTasks

討論

下載任務的運行當前被執行會話管理。

聲明處

AFURLSessionManager.h

operationQueue

@property (readonly, nonatomic, strong) NSOperationQueue *operationQueue

討論

代理回調執行的操作隊列。

聲明處

AFURLSessionManager.h

reachabilityManager

@property (readwrite, nonatomic, strong) AFNetworkReachabilityManager *reachabilityManager

討論

網絡可達性管理。AFURLSessionManager默認使用sharedManager.

聲明處

AFURLSessionManager.h

responseSerializer

@property (nonatomic, strong) id<AFURLResponseSerialization> responseSerializer

討論

響應是從服務器返回的,服務器在數據任務中通過dataTaskWithRequest:success:failure:方法創建,并使用GET/POST等便利方法自動驗證和響應序列化的數據。默認情況下,這個屬性是設置為一個AFJSONResponseSerializer實例。

警告:responseSerializer必須不能為nil。

聲明處

AFURLSessionManager.h

securityPolicy

@property (nonatomic, strong) AFSecurityPolicy *securityPolicy

討論

安全協議是被創建會話使用,用于為安全連接評估服務信任。AFURLSessionManager默認使用defaultPolicy除非另外指定。

聲明處

AFURLSessionManager.h

session

@property (readonly, nonatomic, strong) NSURLSession *session

討論

管理會話。

聲明處

AFURLSessionManager.h

tasks

@property (readonly, nonatomic, strong) NSArray<NSURLSessionTask*> *tasks

討論

數據,上傳和下載任務現在都是被管理會話執行的。

聲明處

AFURLSessionManager.h

uploadTasks

@property (readonly, nonatomic, strong) NSArray<NSURLSessionUploadTask*> *uploadTasks

討論

上傳任務現在被管理會話執行的。

聲明處

AFURLSessionManager.h

實例方法

- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request completionHandler:(nullable void ( ^ ) ( NSURLResponse *response , id _Nullable responseObject , NSError *_Nullable error ))completionHandler

討論

根據指定請求創建一個NSURLSessionDataTask。

參數

request

HTTP請求的請求。

completionHandler

任務完成時執行的一個塊對象。這個塊沒有返回值并有3個參數:服務器響應,序列化創建的響應對象,發生的任何錯誤。

聲明處

AFURLSessionManager.h

dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:

- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request uploadProgress:(nullable void ( ^ ) ( NSProgress *uploadProgress ))uploadProgressBlock downloadProgress:(nullable void ( ^ ) ( NSProgress *downloadProgress ))downloadProgressBlock completionHandler:(nullable void ( ^ ) ( NSURLResponse *response , id _Nullable responseObject , NSError *_Nullable error ))completionHandler

討論

根據指定請求創建一個NSURLSessionDataTask對象。

參數

request

HTTP請求的請求。

uploadProgressBlock

一個塊對象,在上傳進度更新時被執行。注意這個塊是在會話隊列中被調用,不是在主隊列。

downloadProgressBlock

一個塊對象,在下載進度更新時被執行。注意這個塊是在會話隊列中被調用,不是在主隊列。

completionHandler

任務完成時執行的一個塊對象。這個塊沒有返回值并有3個參數:服務器響應,序列化創建的響應對象,發生的任何錯誤。

聲明處

AFURLSessionManager.h

downloadProgressForTask:

- (nullable NSProgress *)downloadProgressForTask:(NSURLSessionTask *)task

討論

返回指定任務的下載進度。

參數

task

會話任務。必須不能為nil。

返回值

一個報道任務下載進度的NSProgress對象,當進度不能獲取時可能為nil。

聲明處

AFURLSessionManager.h

downloadTaskWithRequest:progress:destination:completionHandler:

- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request progress:(nullable void ( ^ ) ( NSProgress *downloadProgress ))downloadProgressBlock destination:(nullable NSURL *( ^ ) ( NSURL *targetPath , NSURLResponse *response ))destination completionHandler:(nullable void ( ^ ) ( NSURLResponse *response , NSURL *_Nullable filePath , NSError *_Nullable error ))completionHandler

討論

根據指定請求創建一個NSURLSessionDownloadTask對象。

警告: 如果在iOS上使用一個后臺的NSURLSessionConfiguration,這些塊將在app終止后消失。后臺會話最好使用setDownloadTaskDidFinishDownloadingBlock:去保存指定URL的下載文件,而不是使用這個方法的目標塊。

參數

request

HTTP請求的請求。

downloadProgressBlock

一個塊對象,在下載進度更新時被執行。注意這個塊是在會話隊列中被調用,不是在主隊列。

destination

一個塊對象,為了終止下載文件的目的地時被執行。這個塊有2個參數,目標路徑和服務器的響應內容,返回產生下載需要的文件URL。下載過程中的臨時文件會在被移動到返回的URL后自動刪除。

completionHandler

任務完成時執行的一個塊對象。這個塊沒有返回值并有3個參數:服務器響應,序列化創建的響應對象,發生的任何錯誤。

聲明處

AFURLSessionManager.h

downloadTaskWithResumeData:progress:destination:completionHandler:

- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData progress:(nullable void ( ^ ) ( NSProgress *downloadProgress ))downloadProgressBlock destination:(nullable NSURL *( ^ ) ( NSURL *targetPath , NSURLResponse *response ))destination completionHandler:(nullable void ( ^ ) ( NSURLResponse *response , NSURL *_Nullable filePath , NSError *_Nullable error ))completionHandler

討論

根據指定的恢復數據創建一個NSURLSessionDownloadTask對象。

參數

resumeData

用來恢復下載的數據。

downloadProgressTask

一個塊對象,在下載進度更新時被執行。注意這個塊是在會話隊列中被調用,不是在主隊列

destination

一個塊對象,為了終止下載文件的目的地時被執行。這個塊有2個參數,目標路徑和服務器的響應內容,返回產生下載需要的文件URL。下載過程中的臨時文件會在被移動到返回的URL后自動刪除。

completionHandler

任務完成時執行的一個塊對象。這個塊沒有返回值并有3個參數:服務器響應,序列化創建的響應對象,發生的任何錯誤。

聲明處

AFURLSessionManager.h

initWithSessionConfiguration:

- (instancetype)initWithSessionConfiguration:(nullable NSURLSessionConfiguration *)configuration

討論

創建和返回一個會話的管理,這個管理使用指定的配置創建。這是特定的初始化方法。

參數

configuration

用來創建管理會話的配置信息。

返回值

一個新創建會話的管理器。

聲明處

AFURLSessionManager.h

invalidateSessionCancelingTasks:

- (void)invalidateSessionCancelingTasks:(BOOL)cancelPendingTasks

討論

作廢管理會話,可選的取消即將發生的任務。

參數

cancelPendingTasks
是否取消即將發生的任務。

聲明處

AFURLSessionManager.h

setDataTaskDidBecomeDownloadTaskBlock:

- (void)setDataTaskDidBecomeDownloadTaskBlock:(nullable void ( ^ ) ( NSURLSession *session , NSURLSessionDataTask *dataTask , NSURLSessionDownloadTask *downloadTask ))block

討論

設置一個在一個數據任務已經成為一個下載任務時執行的塊,同時被NSURLSessionDataDelegate的方法URLSession:dataTask:didBecomeDownloadTask:使用。

參數

block

一個塊對象,在一個數據任務已經變成一個下載任務時被執行。這個塊沒有返回值,3個參數:會話,數據任務,已經變成的下載任務。

聲明處

AFURLSessionManager.h

setDataTaskDidReceiveDataBlock:

- (void)setDataTaskDidReceiveDataBlock:(nullable void ( ^ ) ( NSURLSession *session , NSURLSessionDataTask *dataTask , NSData *data ))block

討論

設置一個在數據任務接收到數據后被執行的塊,同時被NSURLSessionDataDelegate的方法URLSession:dataTask:didReceiveData:使用。

參數

一個塊在一個待定的字符數從服務器下載時被調用。這個塊沒有返回值,有3個參數:會話,數據任務,接收到的數據。這個塊可能被調用很多次,將在會話管理操作隊列中執行。

聲明處

AFURLSessionManager.h

setDataTaskDidReceiveResponseBlock:

- (void)setDataTaskDidReceiveResponseBlock:(nullable NSURLSessionResponseDisposition ( ^ ) ( NSURLSession *session , NSURLSessionDataTask *dataTask , NSURLResponse *response ))block

討論

設置一個在數據任務接收到一個響應后被執行的塊,同時被NSURLSessionDataDelegate的方法URLSession:dataTask:didReceiveResponse:completionHandler:使用。

參數

block

一個塊在數據任務已經接受到一個響應后被執行。這個塊返回會話響應的支配權,有3個參數:會話,數據任務,接收到的響應。

聲明處

AFURLSessionManager.h

setDataTaskWillCacheResponseBlock:

- (void)setDataTaskWillCacheResponseBlock:(nullable NSCachedURLResponse *( ^ ) ( NSURLSession *session , NSURLSessionDataTask *dataTask , NSCachedURLResponse *proposedResponse ))block

討論

設置一個被執行的塊,用來判斷數據任務的緩存行為,同時被NSURLSessionDataDelegate的方法URLSession:dataTask:willCacheResponse:completionHandler:使用。

參數

block

一個塊對象用來判斷數據任務的緩存行為。這個塊返回用于緩存的響應,有3個參數:會話,數據任務,返回的URL響應緩存。

聲明處

AFURLSessionManager.h

setDidFinishEventsForBackgroundURLSessionBlock:

- (void)setDidFinishEventsForBackgroundURLSessionBlock:(nullable void ( ^ ) ( NSURLSession *session ))block

討論

設置一個塊,當所有消息隊列的會話已經發送后被執行一次。同時被NSURLSessionDataDelegate的方法URLSessionDidFinishEventForBackgroundURLSession:使用。

參數

block

一個塊對象當所有消息隊列的會話已經發送后被執行一次。這個塊沒有返回值,有1個參數:會話。

聲明處

AFURLSessionManager.h

setDownloadTaskDidFinishDownloadingBlock:

``

討論

設置一個塊,當下載任務已經完成時執行。同時被NSURLSessionDownloadDelegate的方法NSURLSession:downloadTask:didFinishDownloadingToURL:使用。

參數

block

一個塊對象當一個下載任務已經完成。這個塊返回需要被移除的URL,有3個參數:會話,下載任務,下載文件的臨時路徑。當企圖移動臨時文件到目的地時文件管理器發生錯誤,會發送一個AFURLSessionDownloadTaskDidFailToMoveFileNotification通知,通知中攜帶下載任務的對象和錯誤的用戶信息。

聲明處

AFURlSessionManager.h

setDownloadTaskDidResumeBlock:

- (void)setDownloadTaskDidResumeBlock:(nullable void ( ^ ) ( NSURLSession *session , NSURLSessionDownloadTask *downloadTask , int64_t fileOffset , int64_t expectedTotalBytes ))block

討論

設置一個塊,當下載任務已經重新開始時被執行。同時被NSURLSessionDownloadDelegate的方法URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:使用。

參數

block

一個塊對象,當下載任務已經重新開始時被執行。這個塊沒有返回值,有4個參數:會話,下載任務,重新開始下載的文件偏移量,被下載的預期總字節數。

聲明處

AFURLSessionManager.h

setDownloadTaskDidWriteDataBlock:

- (void)setDownloadTaskDidWriteDataBlock:(nullable void ( ^ ) ( NSURLSession *session , NSURLSessionDownloadTask *downloadTask , int64_t bytesWritten , int64_t totalBytesWritten , int64_t totalBytesExpectedToWrite ))block

討論

設置一個塊,追蹤下載的進度被定期的執行。同時被NSRULSessionDownloadDelegate的方法URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesWritten:totalBytesExpectedToWrite:使用。

參數

block

一個塊對象,當一些字節已經從服務器下載時被調用。這個塊沒有返回值,有5個參數:會話,下載任務,從下載進度的塊最后一次被調用以來讀取的字節數,已經讀取的總字節數,在這個請求中期望讀取的總字節數,NSHTTPURLResponse對象預期的內容大小作為初始判斷大小。這個塊會被調用很多次,會在會話管理操作隊列中執行。

聲明處

AFURLSessionManager.h

setSessionDidBecomeInvalidBlock:

- (void)setSessionDidBecomeInvalidBlock:(nullable void ( ^ ) ( NSURLSession *session , NSError *error ))block

討論

設置一個塊,當管理會話變為無效時執行。同時被NSURLSessionDelegate的方法URLSession:didBecomeInvalidWithError:調用。

參數

一個塊對象,當管理會話變為無效時執行。這個塊沒有返回值,有2個參數:會話,導致無效的錯誤信息。

聲明處

AFURLSessionManager.h

setSessionDidReceiveAuthorizationChallengeBlock:

- (void)setSessionDidReceiveAuthenticationChallengeBlock:(nullable NSURLSessionAuthChallengeDisposition ( ^ ) ( NSURLSession *session , NSURLAuthenticationChallenge *challenge , NSURLCredential *_Nullable __autoreleasing *_Nullable credential ))block

討論

設置一個塊,當一個發生連接認證挑戰時執行。同時被NSURLSessionDelegate的方法URLSession:didReceiveChallenge:completionHandler:調用。

參數

block

一個塊對象在一個發生連接認證挑戰時執行。這個塊返回認證挑戰的配置,有3個參數:會話,授權被懷疑,一個指向證書的指針,證書應該用來解決懷疑。

聲明處

AFURLSessionManager.h

setTaskDidCompleteBlock:

- (void)setTaskDidCompleteBlock:(nullable void ( ^ ) ( NSURLSession *session , NSURLSessionTask *task , NSError *_Nullable error ))block

討論

設置一個塊,當最后的消息關聯的執行任務時執行。同時被NSURLSessionTaskDelegate的方法URLSession:task:didCompleteWithError:調用。

參數

一個塊對象,當一個會話任務完成時調用。這個塊沒有返回值,有3個參數:會話,任務,執行任務過程中發生的任何錯誤。

聲明處

AFURLSessionManager.h

setTaskDidReceiveAuthenticationChallengeBlock:

- (void)setTaskDidReceiveAuthenticationChallengeBlock:(nullable NSURLSessionAuthChallengeDisposition ( ^ ) ( NSURLSession *session , NSURLSessionTask *task , NSURLAuthenticationChallenge *challenge , NSURLCredential *_Nullable __autoreleasing *_Nullable credential ))block

討論

設置一個塊,當一個會話任務接受到一個請求指定的認證挑戰時調用。同時被NSURLSessionTaskDelegate的方法URLSession:task:didReceiveChallenge:completionHandler:調用.

參數

block

一個塊對象,當一個會話任務接受到一個請求指定的授權懷疑時被執行。這個塊返回認證挑戰的配置,有4個參數:會話,任務,認證挑戰,一個指向應該解決挑戰的證書的指針。

聲明處

AFURLSessionManager.h

setTaskDidSendBodyDataBlock:

- (void)setTaskDidSendBodyDataBlock:(nullable void ( ^ ) ( NSURLSession *session , NSURLSessionTask *task , int64_t bytesSent , int64_t totalBytesSent , int64_t totalBytesExpectedToSend ))block

討論

設置一個塊,定時執行跟蹤上傳的進度。同時被NSURLSessionTaskDelegate的方法URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:調用。

參數

block

一個塊對象當一個未確定的字節數被上傳到服務器被調用。這個塊沒有返回值,有5個參數:會話,任務,從上傳進度最后一次被調用后已經寫了的字節數,需要寫的總的字符串,請求中需要寫的總的字節數,HTTP消息體中初始確定的長度。這個塊可能被調用多次,在主線程中被執行。

聲明處

AFURLSessionManager.h

setTaskNeedNewBodyStreamBlock:

- (void)setTaskNeedNewBodyStreamBlock:(nullable NSInputStream *( ^ ) ( NSURLSession *session , NSURLSessionTask *task ))block

討論

設置一個塊,當一個任務強制要求發送一個新的請求體流到遠程服務器時被調用。同時被NSURLSessionTaskDelegate的方法URLSession:task:needNewBodyStream:調用。

參數

block

一個塊對象,當一個任務強制邀請一個新的請求體流時被調用。

聲明處

AFURLSessionManager.h

setTaskWillPerformHTTPRedirectionBlock:

- (void)setTaskWillPerformHTTPRedirectionBlock:(nullable NSURLRequest *( ^ ) ( NSURLSession *session , NSURLSessionTask *task , NSURLResponse *response , NSURLRequest *request ))block

討論

設置一個塊,當一個HTTP請求企圖執行一個重定向的不同的URL時被調用。同時被NSURLSessionTaskDelegate的方法URLSession:willPerformHTTPRedirection:newRequest:completionHandler:調用。

參數

block

一個塊對象,當一個HTTP請求企圖執行一個重定向的不同的URL時被執行。這個塊返回重定向生成的請求,有4個參數:會話,任務,重定向響應,與重定向響應相對應的請求。

聲明處

AFURlSessionManager.h

uploadProgressForTask:

- (nullable NSProgress *)uploadProgressForTask:(NSURLSessionTask *)task

討論

返回指定任務的上傳進度。

參數

task

會話任務。必須不能為nil。

返回值

一個NSProgress對象報告任務的上傳進度,如果進度無效則為nil。

聲明處

AFURLSessionManager.h

uploadTaskWithRequest:fromData:progress:completionhandler:

- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromData:(nullable NSData *)bodyData progress:(nullable void ( ^ ) ( NSProgress *uploadProgress ))uploadProgressBlock completionHandler:(nullable void ( ^ ) ( NSURLResponse *response , id _Nullable responseObject , NSError *_Nullable error ))completionHandler

討論

為HTTP體根據制動請求創建一個NSURlSessionUploadTask對象。

參數

request

請求的HTTP請求。

bodyData

一個數據對象包含上傳的HTTP體內容。

uploadProgressBlock

一個塊對象,在上傳進度更新時被執行。注意這個塊在是會話隊列中被調用,不是在主隊列。

completionHandler

一個塊對象在任務完成時被執行。這個塊沒有返回值,有3個參數:服務器響應,序列化創建的響應對象,發生的任何錯誤。

聲明處

AFURLSessionManager.h

uploadTaskWithRequest:fromFile:progeress:completionHandler:

- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL progress:(nullable void ( ^ ) ( NSProgress *uploadProgress ))uploadProgressBlock completionHandler:(nullable void ( ^ ) ( NSURLResponse *response , id _Nullable responseObject , NSError *_Nullable error ))completionHandler

討論

為本地文件根據指定的請求創建一個NSURLSessionUploadTask對象。

參數

request

請求的HTTP請求。

fileURL

用來上傳文件的URL。

uploadProgressBlock

一個塊對象,在上傳進度更新時被執行。注意這個塊在是會話隊列中被調用,不是在主隊列。

completionHandler

一個塊對象在任務完成時被執行。這個塊沒有返回值,有3個參數:服務器響應,序列化創建的響應對象,發生的任何錯誤。

聲明處

AFURLSessionManager.h

uploadTaskWithStreameRequest:progress:completionhandler:

- (NSURLSessionUploadTask *)uploadTaskWithStreamedRequest:(NSURLRequest *)request progress:(nullable void ( ^ ) ( NSProgress *uploadProgress ))uploadProgressBlock completionHandler:(nullable void ( ^ ) ( NSURLResponse *response , id _Nullable responseObject , NSError *_Nullable error ))completionHandler

討論

根據指定流請求創建一個NSURLSessionUploadTask對象。

參數

request

請求的HTTP請求。

uploadProgressBlock

一個塊對象,在上傳進度更新時被執行。注意這個塊在是會話隊列中被調用,不是在主隊列。

completionHandler

一個塊對象在任務完成時被執行。這個塊沒有返回值,有3個參數:服務器響應,序列化創建的響應對象,發生的任何錯誤。

聲明處

AFURLSessionManager.h

// END 呵呵噠 這個Manager真的是夠長了,從開始到結束一共用了快一個月時間才翻譯好。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,606評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,582評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,540評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,028評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,801評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,223評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,294評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,442評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,976評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,800評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,996評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,543評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,233評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,926評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,702評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容