繼承: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真的是夠長了,從開始到結束一共用了快一個月時間才翻譯好。