AFURLSessionManager類說明


繼承:NSObject


遵照:NSCopying何暮,NSSecureCoding冲杀,NSURLSessionDataDelegate翠胰,NSURLSessionDelegate,NSURLSessionDownloadDelegate伞租,NSURLSessionTaskDelegate


聲明處:AFURLSessionManager.h


概述

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

子類必讀

AFHTTPSessionManager是為HTTP請求添加具體功能的基礎(chǔ)方法限佩。如果你想為HTTP實現(xiàn)明確的功能來擴(kuò)展AFURLSeesionManager葵诈,請考慮用AFHTTPSessionManager子類來代替。

NSURLSession 和 NSURLSessionTask代理方法

AFURLSesssionManager實現(xiàn)了以下的代理方法祟同。

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:

如果任意方法在子類中被重載作喘,那么必須先調(diào)用super實現(xiàn)方法,再實現(xiàn)子類的內(nèi)容晕城。

網(wǎng)絡(luò)可達(dá)性監(jiān)控

通過reachabilityManager屬性監(jiān)聽網(wǎng)絡(luò)可達(dá)性狀態(tài)和改變監(jiān)控器是否為有效泞坦。應(yīng)用可能為了保護(hù)或掛起任意的向外請求而選擇去監(jiān)控網(wǎng)絡(luò)可達(dá)性條件。詳見AFNetworkReachabilityManager砖顷。

NSCoding說明

編碼管理不能包含任何塊屬性贰锁。當(dāng)使用-initWithCoder:或NSKeyedUnarchiver時確保設(shè)置代理回調(diào)的塊。

NSCopying說明

  • -copy-copyWithZone返回一個包含從原始的配置信息創(chuàng)建的新的NSURLSession的新的會話管理實例滤蝠。
  • 執(zhí)行拷貝不能包含任何代理回調(diào)塊豌熄,因為塊經(jīng)常是對self的強(qiáng)引用,在拷貝中可能導(dǎo)致非主觀的將指針指向原始的會話的錯誤物咳。

警告:會話在后臺執(zhí)行時锣险,會話管理必須擁有這些會話。這個可以通過創(chuàng)建一個程序的全局可用的會話管理或一個共享單例來實現(xiàn)览闰。

任務(wù)

其他方法

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

管理安全協(xié)議

  • securityPolicy 屬性

監(jiān)視網(wǎng)絡(luò)可達(dá)性

  • reachabilityManager 屬性

獲取會話任務(wù)

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

管理回調(diào)隊列

  • completionQueue 屬性
  • completionGroup 屬性

工作系統(tǒng)錯誤

  • attemptsToRecreateUploadTasksForBackgroundSessions 屬性

初始化

– initWithSessionConfiguration:
– invalidateSessionCancelingTasks:

執(zhí)行數(shù)據(jù)任務(wù)

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

執(zhí)行上傳任務(wù)

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

執(zhí)行下載任務(wù)

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

獲取任務(wù)的進(jìn)度

– uploadProgressForTask:
– downloadProgressForTask:

設(shè)置會話代理回調(diào)

– setSessionDidBecomeInvalidBlock:
– setSessionDidReceiveAuthenticationChallengeBlock:

設(shè)置任務(wù)代理回調(diào)

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

設(shè)置數(shù)據(jù)任務(wù)代理回調(diào)

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

設(shè)置下載任務(wù)代理回調(diào)

– setDownloadTaskDidFinishDownloadingBlock:
– setDownloadTaskDidWriteDataBlock:
– setDownloadTaskDidResumeBlock:

屬性

attemptsToRecreateUploadTasksForBackgroundSessions

@property (nonatomic, assign) BOOL attemptsToRecreateUploadTasksForBackgroundSessions

討論

是否在初始化時返回nil時囱持,試圖重新為后臺會話創(chuàng)建上傳任務(wù)。 默認(rèn)值為NO焕济。

錯誤:在iOS 7.0有一個bug纷妆,為后臺任務(wù)創(chuàng)建上傳任務(wù)時可能為nil。作為一個解決方法晴弃,當(dāng)這個屬性設(shè)置為YES時掩幢,AFNetworking將遵照蘋果公司的建議嘗試重新創(chuàng)建任務(wù)逊拍。

同見

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

聲明處

AFURLSessionManager.h

completionGroup

@property (nonatomic, strong, nullable) dispatch_group_t completionGroup

討論

completionBlock的派發(fā)組。如果為NULL际邻,使用一個私有的派發(fā)組芯丧。

聲明處

AFURLSessionManager.h

completionQueue

@property (nonatomic, strong, nullable) dispatch_queue_t completionQueue

討論

completionBlock的派發(fā)隊列。如果為NULL世曾,使用系統(tǒng)主隊列缨恒。

聲明處

AFURLSessionManager.h

dataTasks

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

討論

數(shù)據(jù)任務(wù)的運(yùn)行當(dāng)前被執(zhí)行會話管理。

聲明處

AFURLSessionManager.h

downloadTasks

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

討論

下載任務(wù)的運(yùn)行當(dāng)前被執(zhí)行會話管理轮听。

聲明處

AFURLSessionManager.h

operationQueue

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

討論

代理回調(diào)執(zhí)行的操作隊列骗露。

聲明處

AFURLSessionManager.h

reachabilityManager

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

討論

網(wǎng)絡(luò)可達(dá)性管理。AFURLSessionManager默認(rèn)使用sharedManager.

聲明處

AFURLSessionManager.h

responseSerializer

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

討論

響應(yīng)是從服務(wù)器返回的血巍,服務(wù)器在數(shù)據(jù)任務(wù)中通過dataTaskWithRequest:success:failure:方法創(chuàng)建萧锉,并使用GET/POST等便利方法自動驗證和響應(yīng)序列化的數(shù)據(jù)。默認(rèn)情況下述寡,這個屬性是設(shè)置為一個AFJSONResponseSerializer實例柿隙。

警告:responseSerializer必須不能為nil。

聲明處

AFURLSessionManager.h

securityPolicy

@property (nonatomic, strong) AFSecurityPolicy *securityPolicy

討論

安全協(xié)議是被創(chuàng)建會話使用鲫凶,用于為安全連接評估服務(wù)信任禀崖。AFURLSessionManager默認(rèn)使用defaultPolicy除非另外指定。

聲明處

AFURLSessionManager.h

session

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

討論

管理會話螟炫。

聲明處

AFURLSessionManager.h

tasks

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

討論

數(shù)據(jù)帆焕,上傳和下載任務(wù)現(xiàn)在都是被管理會話執(zhí)行的。

聲明處

AFURLSessionManager.h

uploadTasks

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

討論

上傳任務(wù)現(xiàn)在被管理會話執(zhí)行的不恭。

聲明處

AFURLSessionManager.h

實例方法

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

討論

根據(jù)指定請求創(chuàng)建一個NSURLSessionDataTask叶雹。

參數(shù)

request

HTTP請求的請求。

completionHandler

任務(wù)完成時執(zhí)行的一個塊對象换吧。這個塊沒有返回值并有3個參數(shù):服務(wù)器響應(yīng)折晦,序列化創(chuàng)建的響應(yīng)對象,發(fā)生的任何錯誤沾瓦。

聲明處

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

討論

根據(jù)指定請求創(chuàng)建一個NSURLSessionDataTask對象满着。

參數(shù)

request

HTTP請求的請求。

uploadProgressBlock

一個塊對象贯莺,在上傳進(jìn)度更新時被執(zhí)行风喇。注意這個塊是在會話隊列中被調(diào)用,不是在主隊列缕探。

downloadProgressBlock

一個塊對象魂莫,在下載進(jìn)度更新時被執(zhí)行。注意這個塊是在會話隊列中被調(diào)用爹耗,不是在主隊列耙考。

completionHandler

任務(wù)完成時執(zhí)行的一個塊對象谜喊。這個塊沒有返回值并有3個參數(shù):服務(wù)器響應(yīng),序列化創(chuàng)建的響應(yīng)對象倦始,發(fā)生的任何錯誤斗遏。

聲明處

AFURLSessionManager.h

downloadProgressForTask:

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

討論

返回指定任務(wù)的下載進(jìn)度。

參數(shù)

task

會話任務(wù)鞋邑。必須不能為nil诵次。

返回值

一個報道任務(wù)下載進(jìn)度的NSProgress對象,當(dāng)進(jìn)度不能獲取時可能為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

討論

根據(jù)指定請求創(chuàng)建一個NSURLSessionDownloadTask對象逾一。

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

參數(shù)

request

HTTP請求的請求酷含。

downloadProgressBlock

一個塊對象,在下載進(jìn)度更新時被執(zhí)行汪茧。注意這個塊是在會話隊列中被調(diào)用椅亚,不是在主隊列。

destination

一個塊對象舱污,為了終止下載文件的目的地時被執(zhí)行呀舔。這個塊有2個參數(shù),目標(biāo)路徑和服務(wù)器的響應(yīng)內(nèi)容扩灯,返回產(chǎn)生下載需要的文件URL媚赖。下載過程中的臨時文件會在被移動到返回的URL后自動刪除。

completionHandler

任務(wù)完成時執(zhí)行的一個塊對象珠插。這個塊沒有返回值并有3個參數(shù):服務(wù)器響應(yīng)惧磺,序列化創(chuàng)建的響應(yīng)對象,發(fā)生的任何錯誤捻撑。

聲明處

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

討論

根據(jù)指定的恢復(fù)數(shù)據(jù)創(chuàng)建一個NSURLSessionDownloadTask對象磨隘。

參數(shù)

resumeData

用來恢復(fù)下載的數(shù)據(jù)。

downloadProgressTask

一個塊對象顾患,在下載進(jìn)度更新時被執(zhí)行番捂。注意這個塊是在會話隊列中被調(diào)用,不是在主隊列

destination

一個塊對象江解,為了終止下載文件的目的地時被執(zhí)行设预。這個塊有2個參數(shù),目標(biāo)路徑和服務(wù)器的響應(yīng)內(nèi)容犁河,返回產(chǎn)生下載需要的文件URL絮缅。下載過程中的臨時文件會在被移動到返回的URL后自動刪除鲁沥。

completionHandler

任務(wù)完成時執(zhí)行的一個塊對象。這個塊沒有返回值并有3個參數(shù):服務(wù)器響應(yīng)耕魄,序列化創(chuàng)建的響應(yīng)對象画恰,發(fā)生的任何錯誤。

聲明處

AFURLSessionManager.h

initWithSessionConfiguration:

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

討論

創(chuàng)建和返回一個會話的管理吸奴,這個管理使用指定的配置創(chuàng)建允扇。這是特定的初始化方法。

參數(shù)

configuration

用來創(chuàng)建管理會話的配置信息则奥。

返回值

一個新創(chuàng)建會話的管理器考润。

聲明處

AFURLSessionManager.h

invalidateSessionCancelingTasks:

- (void)invalidateSessionCancelingTasks:(BOOL)cancelPendingTasks

討論

作廢管理會話,可選的取消即將發(fā)生的任務(wù)读处。

參數(shù)

cancelPendingTasks
是否取消即將發(fā)生的任務(wù)糊治。

聲明處

AFURLSessionManager.h

setDataTaskDidBecomeDownloadTaskBlock:

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

討論

設(shè)置一個在一個數(shù)據(jù)任務(wù)已經(jīng)成為一個下載任務(wù)時執(zhí)行的塊,同時被NSURLSessionDataDelegate的方法URLSession:dataTask:didBecomeDownloadTask:使用罚舱。

參數(shù)

block

一個塊對象井辜,在一個數(shù)據(jù)任務(wù)已經(jīng)變成一個下載任務(wù)時被執(zhí)行。這個塊沒有返回值管闷,3個參數(shù):會話粥脚,數(shù)據(jù)任務(wù),已經(jīng)變成的下載任務(wù)包个。

聲明處

AFURLSessionManager.h

setDataTaskDidReceiveDataBlock:

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

討論

設(shè)置一個在數(shù)據(jù)任務(wù)接收到數(shù)據(jù)后被執(zhí)行的塊刷允,同時被NSURLSessionDataDelegate的方法URLSession:dataTask:didReceiveData:使用。

參數(shù)

一個塊在一個待定的字符數(shù)從服務(wù)器下載時被調(diào)用碧囊。這個塊沒有返回值树灶,有3個參數(shù):會話,數(shù)據(jù)任務(wù)糯而,接收到的數(shù)據(jù)破托。這個塊可能被調(diào)用很多次,將在會話管理操作隊列中執(zhí)行歧蒋。

聲明處

AFURLSessionManager.h

setDataTaskDidReceiveResponseBlock:

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

討論

設(shè)置一個在數(shù)據(jù)任務(wù)接收到一個響應(yīng)后被執(zhí)行的塊土砂,同時被NSURLSessionDataDelegate的方法URLSession:dataTask:didReceiveResponse:completionHandler:使用。

參數(shù)

block

一個塊在數(shù)據(jù)任務(wù)已經(jīng)接受到一個響應(yīng)后被執(zhí)行谜洽。這個塊返回會話響應(yīng)的支配權(quán)萝映,有3個參數(shù):會話,數(shù)據(jù)任務(wù)阐虚,接收到的響應(yīng)序臂。

聲明處

AFURLSessionManager.h

setDataTaskWillCacheResponseBlock:

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

討論

設(shè)置一個被執(zhí)行的塊,用來判斷數(shù)據(jù)任務(wù)的緩存行為,同時被NSURLSessionDataDelegate的方法URLSession:dataTask:willCacheResponse:completionHandler:使用奥秆。

參數(shù)

block

一個塊對象用來判斷數(shù)據(jù)任務(wù)的緩存行為逊彭。這個塊返回用于緩存的響應(yīng),有3個參數(shù):會話构订,數(shù)據(jù)任務(wù)侮叮,返回的URL響應(yīng)緩存。

聲明處

AFURLSessionManager.h

setDidFinishEventsForBackgroundURLSessionBlock:

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

討論

設(shè)置一個塊悼瘾,當(dāng)所有消息隊列的會話已經(jīng)發(fā)送后被執(zhí)行一次囊榜。同時被NSURLSessionDataDelegate的方法URLSessionDidFinishEventForBackgroundURLSession:使用。

參數(shù)

block

一個塊對象當(dāng)所有消息隊列的會話已經(jīng)發(fā)送后被執(zhí)行一次亥宿。這個塊沒有返回值卸勺,有1個參數(shù):會話。

聲明處

AFURLSessionManager.h

setDownloadTaskDidFinishDownloadingBlock:

``

討論

設(shè)置一個塊烫扼,當(dāng)下載任務(wù)已經(jīng)完成時執(zhí)行曙求。同時被NSURLSessionDownloadDelegate的方法NSURLSession:downloadTask:didFinishDownloadingToURL:使用。

參數(shù)

block

一個塊對象當(dāng)一個下載任務(wù)已經(jīng)完成映企。這個塊返回需要被移除的URL悟狱,有3個參數(shù):會話,下載任務(wù)卑吭,下載文件的臨時路徑芽淡。當(dāng)企圖移動臨時文件到目的地時文件管理器發(fā)生錯誤马绝,會發(fā)送一個AFURLSessionDownloadTaskDidFailToMoveFileNotification通知豆赏,通知中攜帶下載任務(wù)的對象和錯誤的用戶信息。

聲明處

AFURlSessionManager.h

setDownloadTaskDidResumeBlock:

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

討論

設(shè)置一個塊富稻,當(dāng)下載任務(wù)已經(jīng)重新開始時被執(zhí)行掷邦。同時被NSURLSessionDownloadDelegate的方法URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:使用。

參數(shù)

block

一個塊對象椭赋,當(dāng)下載任務(wù)已經(jīng)重新開始時被執(zhí)行抚岗。這個塊沒有返回值,有4個參數(shù):會話哪怔,下載任務(wù)宣蔚,重新開始下載的文件偏移量,被下載的預(yù)期總字節(jié)數(shù)认境。

聲明處

AFURLSessionManager.h

setDownloadTaskDidWriteDataBlock:

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

討論

設(shè)置一個塊胚委,追蹤下載的進(jìn)度被定期的執(zhí)行。同時被NSRULSessionDownloadDelegate的方法URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesWritten:totalBytesExpectedToWrite:使用叉信。

參數(shù)

block

一個塊對象亩冬,當(dāng)一些字節(jié)已經(jīng)從服務(wù)器下載時被調(diào)用。這個塊沒有返回值硼身,有5個參數(shù):會話硅急,下載任務(wù)覆享,從下載進(jìn)度的塊最后一次被調(diào)用以來讀取的字節(jié)數(shù),已經(jīng)讀取的總字節(jié)數(shù)营袜,在這個請求中期望讀取的總字節(jié)數(shù)撒顿,NSHTTPURLResponse對象預(yù)期的內(nèi)容大小作為初始判斷大小。這個塊會被調(diào)用很多次连茧,會在會話管理操作隊列中執(zhí)行核蘸。

聲明處

AFURLSessionManager.h

setSessionDidBecomeInvalidBlock:

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

討論

設(shè)置一個塊,當(dāng)管理會話變?yōu)闊o效時執(zhí)行啸驯。同時被NSURLSessionDelegate的方法URLSession:didBecomeInvalidWithError:調(diào)用客扎。

參數(shù)

一個塊對象,當(dāng)管理會話變?yōu)闊o效時執(zhí)行罚斗。這個塊沒有返回值徙鱼,有2個參數(shù):會話,導(dǎo)致無效的錯誤信息针姿。

聲明處

AFURLSessionManager.h

setSessionDidReceiveAuthorizationChallengeBlock:

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

討論

設(shè)置一個塊袱吆,當(dāng)一個發(fā)生連接認(rèn)證挑戰(zhàn)時執(zhí)行。同時被NSURLSessionDelegate的方法URLSession:didReceiveChallenge:completionHandler:調(diào)用距淫。

參數(shù)

block

一個塊對象在一個發(fā)生連接認(rèn)證挑戰(zhàn)時執(zhí)行绞绒。這個塊返回認(rèn)證挑戰(zhàn)的配置,有3個參數(shù):會話榕暇,授權(quán)被懷疑蓬衡,一個指向證書的指針,證書應(yīng)該用來解決懷疑彤枢。

聲明處

AFURLSessionManager.h

setTaskDidCompleteBlock:

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

討論

設(shè)置一個塊狰晚,當(dāng)最后的消息關(guān)聯(lián)的執(zhí)行任務(wù)時執(zhí)行。同時被NSURLSessionTaskDelegate的方法URLSession:task:didCompleteWithError:調(diào)用缴啡。

參數(shù)

一個塊對象壁晒,當(dāng)一個會話任務(wù)完成時調(diào)用。這個塊沒有返回值业栅,有3個參數(shù):會話秒咐,任務(wù),執(zhí)行任務(wù)過程中發(fā)生的任何錯誤碘裕。

聲明處

AFURLSessionManager.h

setTaskDidReceiveAuthenticationChallengeBlock:

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

討論

設(shè)置一個塊携取,當(dāng)一個會話任務(wù)接受到一個請求指定的認(rèn)證挑戰(zhàn)時調(diào)用。同時被NSURLSessionTaskDelegate的方法URLSession:task:didReceiveChallenge:completionHandler:調(diào)用.

參數(shù)

block

一個塊對象娘汞,當(dāng)一個會話任務(wù)接受到一個請求指定的授權(quán)懷疑時被執(zhí)行歹茶。這個塊返回認(rèn)證挑戰(zhàn)的配置,有4個參數(shù):會話,任務(wù)惊豺,認(rèn)證挑戰(zhàn)燎孟,一個指向應(yīng)該解決挑戰(zhàn)的證書的指針。

聲明處

AFURLSessionManager.h

setTaskDidSendBodyDataBlock:

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

討論

設(shè)置一個塊尸昧,定時執(zhí)行跟蹤上傳的進(jìn)度揩页。同時被NSURLSessionTaskDelegate的方法URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:調(diào)用。

參數(shù)

block

一個塊對象當(dāng)一個未確定的字節(jié)數(shù)被上傳到服務(wù)器被調(diào)用烹俗。這個塊沒有返回值爆侣,有5個參數(shù):會話,任務(wù)幢妄,從上傳進(jìn)度最后一次被調(diào)用后已經(jīng)寫了的字節(jié)數(shù)兔仰,需要寫的總的字符串,請求中需要寫的總的字節(jié)數(shù)蕉鸳,HTTP消息體中初始確定的長度乎赴。這個塊可能被調(diào)用多次,在主線程中被執(zhí)行潮尝。

聲明處

AFURLSessionManager.h

setTaskNeedNewBodyStreamBlock:

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

討論

設(shè)置一個塊榕吼,當(dāng)一個任務(wù)強(qiáng)制要求發(fā)送一個新的請求體流到遠(yuǎn)程服務(wù)器時被調(diào)用。同時被NSURLSessionTaskDelegate的方法URLSession:task:needNewBodyStream:調(diào)用勉失。

參數(shù)

block

一個塊對象羹蚣,當(dāng)一個任務(wù)強(qiáng)制邀請一個新的請求體流時被調(diào)用。

聲明處

AFURLSessionManager.h

setTaskWillPerformHTTPRedirectionBlock:

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

討論

設(shè)置一個塊乱凿,當(dāng)一個HTTP請求企圖執(zhí)行一個重定向的不同的URL時被調(diào)用顽素。同時被NSURLSessionTaskDelegate的方法URLSession:willPerformHTTPRedirection:newRequest:completionHandler:調(diào)用。

參數(shù)

block

一個塊對象告匠,當(dāng)一個HTTP請求企圖執(zhí)行一個重定向的不同的URL時被執(zhí)行戈抄。這個塊返回重定向生成的請求离唬,有4個參數(shù):會話后专,任務(wù),重定向響應(yīng)输莺,與重定向響應(yīng)相對應(yīng)的請求戚哎。

聲明處

AFURlSessionManager.h

uploadProgressForTask:

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

討論

返回指定任務(wù)的上傳進(jìn)度。

參數(shù)

task

會話任務(wù)嫂用。必須不能為nil型凳。

返回值

一個NSProgress對象報告任務(wù)的上傳進(jìn)度,如果進(jìn)度無效則為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體根據(jù)制動請求創(chuàng)建一個NSURlSessionUploadTask對象甘畅。

參數(shù)

request

請求的HTTP請求。

bodyData

一個數(shù)據(jù)對象包含上傳的HTTP體內(nèi)容。

uploadProgressBlock

一個塊對象疏唾,在上傳進(jìn)度更新時被執(zhí)行蓄氧。注意這個塊在是會話隊列中被調(diào)用,不是在主隊列槐脏。

completionHandler

一個塊對象在任務(wù)完成時被執(zhí)行。這個塊沒有返回值,有3個參數(shù):服務(wù)器響應(yīng)礁芦,序列化創(chuàng)建的響應(yīng)對象腺兴,發(fā)生的任何錯誤。

聲明處

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

討論

為本地文件根據(jù)指定的請求創(chuàng)建一個NSURLSessionUploadTask對象牌废。

參數(shù)

request

請求的HTTP請求咽白。

fileURL

用來上傳文件的URL。

uploadProgressBlock

一個塊對象鸟缕,在上傳進(jìn)度更新時被執(zhí)行局扶。注意這個塊在是會話隊列中被調(diào)用,不是在主隊列叁扫。

completionHandler

一個塊對象在任務(wù)完成時被執(zhí)行三妈。這個塊沒有返回值,有3個參數(shù):服務(wù)器響應(yīng)莫绣,序列化創(chuàng)建的響應(yīng)對象畴蒲,發(fā)生的任何錯誤。

聲明處

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

討論

根據(jù)指定流請求創(chuàng)建一個NSURLSessionUploadTask對象对室。

參數(shù)

request

請求的HTTP請求模燥。

uploadProgressBlock

一個塊對象,在上傳進(jìn)度更新時被執(zhí)行掩宜。注意這個塊在是會話隊列中被調(diào)用蔫骂,不是在主隊列。

completionHandler

一個塊對象在任務(wù)完成時被執(zhí)行牺汤。這個塊沒有返回值辽旋,有3個參數(shù):服務(wù)器響應(yīng),序列化創(chuàng)建的響應(yīng)對象檐迟,發(fā)生的任何錯誤补胚。

聲明處

AFURLSessionManager.h

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末溶其,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子敦间,更是在濱河造成了極大的恐慌瓶逃,老刑警劉巖束铭,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異厢绝,居然都是意外死亡纯露,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門代芜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來埠褪,“玉大人,你說我怎么就攤上這事挤庇〕伲” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵嫡秕,是天一觀的道長渴语。 經(jīng)常有香客問我,道長昆咽,這世上最難降的妖魔是什么驾凶? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮掷酗,結(jié)果婚禮上调违,老公的妹妹穿的比我還像新娘。我一直安慰自己泻轰,他們只是感情好技肩,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著浮声,像睡著了一般虚婿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泳挥,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天然痊,我揣著相機(jī)與錄音,去河邊找鬼屉符。 笑死剧浸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的筑煮。 我是一名探鬼主播辛蚊,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼粤蝎,長吁一口氣:“原來是場噩夢啊……” “哼真仲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起初澎,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤秸应,失蹤者是張志新(化名)和其女友劉穎虑凛,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體软啼,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡桑谍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了祸挪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锣披。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贿条,靈堂內(nèi)的尸體忽然破棺而出雹仿,到底是詐尸還是另有隱情,我是刑警寧澤整以,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布胧辽,位于F島的核電站,受9級特大地震影響公黑,放射性物質(zhì)發(fā)生泄漏邑商。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一凡蚜、第九天 我趴在偏房一處隱蔽的房頂上張望人断。 院中可真熱鬧,春花似錦朝蜘、人聲如沸含鳞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝉绷。三九已至,卻和暖如春枣抱,著一層夾襖步出監(jiān)牢的瞬間熔吗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工佳晶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留桅狠,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓轿秧,卻偏偏與公主長得像中跌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子菇篡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容