繼承: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é)束一共用了快一個月時間才翻譯好追迟。