繼承:AFURLSessionManager:NSObject
遵照:NSCopying, NSSecureCoding
聲明處:AFHTTPSessionManager.h
概述
AFHTTPSessionManager是AFURLSessionManager的子類剖煌,為了便利使用HTTP請求瓶您。當(dāng)一個baseURL提供時,用相對路徑構(gòu)造GET/POST等便利的方法來創(chuàng)建請求。
子類化注意
開發(fā)人員使用網(wǎng)絡(luò)服務(wù)并且將iOS7或Mac OS X 10.9或更新的版本作為目標(biāo)版本萝风,那么推薦使用AFHTTPSessionManager的子類,提供一個返回共享單例對象的類方法购岗,此單例可以在整個應(yīng)用中共享驗證或其他的配置信息荆隘。
對于開發(fā)人員設(shè)置目標(biāo)版本為iOS6或Mac OS X 10.8 或更早的版本,那么AFHTTPRequestOperationManager可以實現(xiàn)相同的效果鹤树。
重載的方法
改變所有數(shù)據(jù)的任務(wù)操作結(jié)構(gòu)的行為铣焊,同樣使用GET/POST等便利的方法,重載dataTaskWithRequest:completionHandler:.
序列化
一個HTTP端創(chuàng)建的請求罕伯,包含默認(rèn)的HTTP頭和依據(jù)requestSerializer屬性編碼的參數(shù)曲伊,是遵照AFURLRequestSerialization的對象。
服務(wù)器返回的響應(yīng)數(shù)據(jù)是被自動校驗過的并被responseSerializers屬性序列化的追他,是遵照AFURLResponseSerialization的對象坟募。
URL構(gòu)建使用相對路徑
對于HTTP便利方法岛蚤,請求序列化構(gòu)造URLs來之baseURL的相對路徑,使用提供的NSURL的方法 +URLWithString:relativeToURL:
. 當(dāng)baseURL為nil時懈糯,請求路徑使用NSURL的方法+URLWithString:
來生成一個有效的NSURL對象涤妒。
以下是baseURL和相對路徑互相作用的一些樣例代碼:
NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"];
[NSURL URLWithString:@"foo" relativeToURL:baseURL]; // http://example.com/v1/foo
[NSURL URLWithString:@"foo?bar=baz" relativeToURL:baseURL]; // http://example.com/v1/foo?bar=baz
[NSURL URLWithString:@"/foo" relativeToURL:baseURL]; // http://example.com/foo
[NSURL URLWithString:@"foo/" relativeToURL:baseURL]; // http://example.com/v1/foo
[NSURL URLWithString:@"/foo/" relativeToURL:baseURL]; // http://example.com/foo/
[NSURL URLWithString:@"http://example2.com/" relativeToURL:baseURL]; // http://example2.com/
同時特別注意baseURL末尾沒有斜杠時添加一個。否則當(dāng)沒有一個末尾斜杠時赚哗,可能在使用路徑構(gòu)架URLs時引起未預(yù)期的行為届腐。
警告:后臺會話的Managers必須在他們使用期間擁有》浼椋可以通過創(chuàng)建一個application-wide或分享單例實例來完成犁苏。
任務(wù)
其他方法
baseURL 屬性
requestSerializer 屬性
responseSerializer 屬性
初始化
類方法
+ manager
實例方法
– initWithBaseURL:
– initWithBaseURL:sessionConfiguration:
創(chuàng)建HTTP請求
– GET:parameters:success:failure:
– GET:parameters:progress:success:failure:
– HEAD:parameters:success:failure:
– POST:parameters:success:failure:
– POST:parameters:progress:success:failure:
– POST:parameters:constructingBodyWithBlock:success:failure:
– POST:parameters:constructingBodyWithBlock:progress:success:failure:
– PUT:parameters:success:failure:
– PATCH:parameters:success:failure:
– DELETE:parameters:success:failure:
屬性
baseURL
@property (readonly, nonatomic, strong, nullable) NSURL *baseURL
討論
此URL是用在像requestWithMethod:URLString:parameters:
方法中根據(jù)相對路徑和GET/POST等便利方法來創(chuàng)建請求。
聲明處
AFHTTPSessionManager.h
requestSerializer
@property (nonatomic, strong) AFHTTPRequestSerializer<AFURLRequestSerialization> *requestSerializer
討論
使用requestWithMethod:URLString:parameters:
& multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock
這個兩個方法創(chuàng)建的請求扩所,是通過這個屬性指定已經(jīng)參數(shù)序列化好的一組默認(rèn)請求頭構(gòu)建的围详。默認(rèn)設(shè)置下,這些內(nèi)容設(shè)置在一個為GET祖屏,HEAD和DELETE或其他URL-form-encodes的HTTP消息體連接查詢字符串參數(shù)的AFHTTPRequestSerializer實例中助赞。
警告: requestSerializer必須不能為nil。
聲明處
AFHTTPSessionManager.h
responseSerializer
@property (nonatomic, strong) AFHTTPResponseSerializer<AFURLResponseSerialization> *responseSerializer
討論
回應(yīng)序列化是dateTaskWithRequest:success:failure:
創(chuàng)建的數(shù)據(jù)任務(wù)使用Get袁勺、Post等便利的方法雹食,獲取服務(wù)器返回的響應(yīng)進(jìn)行驗證和通過響應(yīng)序列進(jìn)行序列化。默認(rèn)這個屬性設(shè)置為AFJSONResponseSerializer的實例期丰。
警告: responseSerializer必須不為nil群叶。
聲明處
AFHTTPSessionManager.h
類方法
manager
+ (instancetype)manager
討論
創(chuàng)建和返回一個AFHTTPSessionManager對象。
聲明處
AFHTTPSessionManager.h
實例方法
DELETE:parameters:success:failure:
- (nullable NSURLSessionDataTask *)DELETE:(NSString *)URLString parameters:(nullable id)parameters success:(nullable void ( ^ ) ( NSURLSessionDataTask *task , id _Nullable responseObject ))success failure:(nullable void ( ^ ) ( NSURLSessionDataTask *_Nullable task , NSError *error ))failure
討論
創(chuàng)建和運行一個DELETE請求的NSURLSessionDataTask
參數(shù)
URLString
用于創(chuàng)建請求RUL的URL字符串钝荡。
parameters
依據(jù)定制的請求序列化被編碼的參數(shù)街立。
success
一個當(dāng)任務(wù)成功完成時被執(zhí)行的塊。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和被定制的響應(yīng)序列化創(chuàng)建的響應(yīng)對象埠通。
failure
一個當(dāng)任務(wù)完成單沒有成功時赎离,或成功完成但是在解析響應(yīng)數(shù)據(jù)時遭遇一個錯誤時被執(zhí)行的塊。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和描述發(fā)生的網(wǎng)絡(luò)和解析出錯的錯誤端辱。
聲明處
AFHTTPSessionManager.h
GET:parameters:progress:success:failure:
- (nullable NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(nullable id)parameters progress:(nullable void ( ^ ) ( NSProgress *downloadProgress ))downloadProgress success:(nullable void ( ^ ) ( NSURLSessionDataTask *task , id _Nullable responseObject ))success failure:(nullable void ( ^ ) ( NSURLSessionDataTask *_Nullable task , NSError *error ))failure
討論
創(chuàng)建和運行一個GET請求的NSURLSessionDataTask梁剔。
參數(shù)
URLString
用于創(chuàng)建請求RUL的URL字符串。
parameters
依據(jù)定制的請求序列化被編碼的參數(shù)舞蔽。
downloadProgress
一個當(dāng)下載進(jìn)度更新時被執(zhí)行的塊荣病。注意這個塊是在會話隊列中被調(diào)用,而不是在主隊列喷鸽。
success
一個當(dāng)任務(wù)成功完成時被執(zhí)行的塊众雷。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和被定制的響應(yīng)序列化創(chuàng)建的響應(yīng)對象。
failure
一個當(dāng)任務(wù)完成單沒有成功時,或成功完成但是在解析響應(yīng)數(shù)據(jù)時遭遇一個錯誤時被執(zhí)行的塊砾省。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和描述發(fā)生的網(wǎng)絡(luò)和解析出錯的錯誤鸡岗。
聲明處
AFHTTPSessionManager.h
GET:parameters:success:failure:
- (nullable NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(nullable id)parameters success:(nullable void ( ^ ) ( NSURLSessionDataTask *task , id _Nullable responseObject ))success failure:(nullable void ( ^ ) ( NSURLSessionDataTask *_Nullable task , NSError *error ))failure
討論
創(chuàng)建和運行一個GET請求的NSURLSessionDataTask。
參數(shù)
URLString
用于創(chuàng)建請求RUL的URL字符串编兄。
parameters
依據(jù)定制的請求序列化被編碼的參數(shù)轩性。
success
一個當(dāng)任務(wù)成功完成時被執(zhí)行的塊。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和被定制的響應(yīng)序列化創(chuàng)建的響應(yīng)對象狠鸳。
failure
一個當(dāng)任務(wù)完成單沒有成功時揣苏,或成功完成但是在解析響應(yīng)數(shù)據(jù)時遭遇一個錯誤時被執(zhí)行的塊。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和描述發(fā)生的網(wǎng)絡(luò)和解析出錯的錯誤件舵。
聲明處
AFHTTPSessionManager.h
HEAD:parameters:success:failure:
- (nullable NSURLSessionDataTask *)HEAD:(NSString *)URLString parameters:(nullable id)parameters success:(nullable void ( ^ ) ( NSURLSessionDataTask *task ))success failure:(nullable void ( ^ ) ( NSURLSessionDataTask *_Nullable task , NSError *error ))failure
討論
創(chuàng)建和運行一個HEAD請求的NSURLSessionDataTask卸察。
參數(shù)
URLString
用于創(chuàng)建請求RUL的URL字符串。
parameters
依據(jù)定制的請求序列化被編碼的參數(shù)铅祸。
success
一個當(dāng)任務(wù)成功完成時被執(zhí)行的塊坑质。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和被定制的響應(yīng)序列化創(chuàng)建的響應(yīng)對象。
failure
一個當(dāng)任務(wù)完成單沒有成功時临梗,或成功完成但是在解析響應(yīng)數(shù)據(jù)時遭遇一個錯誤時被執(zhí)行的塊涡扼。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和描述發(fā)生的網(wǎng)絡(luò)和解析出錯的錯誤。
聲明處
AFHTTPSessionManager.h
PATCH:parameters:success:failure:
- (nullable NSURLSessionDataTask *)PATCH:(NSString *)URLString parameters:(nullable id)parameters success:(nullable void ( ^ ) ( NSURLSessionDataTask *task , id _Nullable responseObject ))success failure:(nullable void ( ^ ) ( NSURLSessionDataTask *_Nullable task , NSError *error ))failure
討論
創(chuàng)建和運行一個PATCH請求的NSURLSessionDataTask盟庞。
參數(shù)
URLString
用于創(chuàng)建請求RUL的URL字符串吃沪。
parameters
依據(jù)定制的請求序列化被編碼的參數(shù)。
success
一個當(dāng)任務(wù)成功完成時被執(zhí)行的塊什猖。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和被定制的響應(yīng)序列化創(chuàng)建的響應(yīng)對象票彪。
failure
一個當(dāng)任務(wù)完成單沒有成功時,或成功完成但是在解析響應(yīng)數(shù)據(jù)時遭遇一個錯誤時被執(zhí)行的塊卸伞。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和描述發(fā)生的網(wǎng)絡(luò)和解析出錯的錯誤抹镊。
聲明處
AFHTTPSessionManager.h
POST:parameters:constructingBodyWithBlock:progress:success:failure:
- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(nullable id)parameters constructingBodyWithBlock:(nullable void ( ^ ) ( id<AFMultipartFormData> formData ))block progress:(nullable void ( ^ ) ( NSProgress *uploadProgress ))uploadProgress success:(nullable void ( ^ ) ( NSURLSessionDataTask *task , id _Nullable responseObject ))success failure:(nullable void ( ^ ) ( NSURLSessionDataTask *_Nullable task , NSError *error ))failure
討論
創(chuàng)建和運行一個多部分的POST請求的NSURLSessionDataTask。
參數(shù)
URLString
用于創(chuàng)建請求RUL的URL字符串荤傲。
parameters
依據(jù)定制的請求序列化被編碼的參數(shù)。
block
一個帶一個參數(shù)和追加數(shù)據(jù)到HTTP消息體的塊颈渊。這個塊的參數(shù)是一個采用AFMultipartFormData協(xié)議的對象遂黍。
uploadProgress
一個當(dāng)上傳進(jìn)度更新時被執(zhí)行的塊。注意這個塊是在會話隊列中被調(diào)用俊嗽,而不是在主隊列雾家。
success
一個當(dāng)任務(wù)成功完成時被執(zhí)行的塊。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和被定制的響應(yīng)序列化創(chuàng)建的響應(yīng)對象绍豁。
failure
一個當(dāng)任務(wù)完成單沒有成功時芯咧,或成功完成但是在解析響應(yīng)數(shù)據(jù)時遭遇一個錯誤時被執(zhí)行的塊。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和描述發(fā)生的網(wǎng)絡(luò)和解析出錯的錯誤。
聲明處
AFHTTPSessionManager.h
POST:parameters:constructingBodyWithBlock:success:failure:
- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(nullable id)parameters constructingBodyWithBlock:(nullable void ( ^ ) ( id<AFMultipartFormData> formData ))block success:(nullable void ( ^ ) ( NSURLSessionDataTask *task , id _Nullable responseObject ))success failure:(nullable void ( ^ ) ( NSURLSessionDataTask *_Nullable task , NSError *error ))failure
討論
創(chuàng)建和運行一個多部分的POST請求的NSURLSessionDataTask敬飒。
參數(shù)
URLString
用于創(chuàng)建請求RUL的URL字符串邪铲。
parameters
依據(jù)定制的請求序列化被編碼的參數(shù)。
block
一個帶一個參數(shù)和追加數(shù)據(jù)到HTTP消息體的塊无拗。這個塊的參數(shù)是一個采用AFMultipartFormData協(xié)議的對象带到。
success
一個當(dāng)任務(wù)成功完成時被執(zhí)行的塊。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和被定制的響應(yīng)序列化創(chuàng)建的響應(yīng)對象英染。
failure
一個當(dāng)任務(wù)完成單沒有成功時揽惹,或成功完成但是在解析響應(yīng)數(shù)據(jù)時遭遇一個錯誤時被執(zhí)行的塊。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和描述發(fā)生的網(wǎng)絡(luò)和解析出錯的錯誤四康。
聲明處
AFHTTPSessionManager.h
POST:parameters:progress:success:failure:
- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(nullable id)parameters progress:(nullable void ( ^ ) ( NSProgress *uploadProgress ))uploadProgress success:(nullable void ( ^ ) ( NSURLSessionDataTask *task , id _Nullable responseObject ))success failure:(nullable void ( ^ ) ( NSURLSessionDataTask *_Nullable task , NSError *error ))failure
討論
創(chuàng)建和運行一個POST請求的NSURLSessionDataTask搪搏。
參數(shù)
URLString
用于創(chuàng)建請求RUL的URL字符串。
parameters
依據(jù)定制的請求序列化被編碼的參數(shù)闪金。
uploadProgress
一個當(dāng)上傳進(jìn)度更新時被執(zhí)行的塊疯溺。注意這個塊是在會話隊列中被調(diào)用,而不是在主隊列毕泌。
success
一個當(dāng)任務(wù)成功完成時被執(zhí)行的塊喝检。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和被定制的響應(yīng)序列化創(chuàng)建的響應(yīng)對象。
failure
一個當(dāng)任務(wù)完成單沒有成功時撼泛,或成功完成但是在解析響應(yīng)數(shù)據(jù)時遭遇一個錯誤時被執(zhí)行的塊挠说。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和描述發(fā)生的網(wǎng)絡(luò)和解析出錯的錯誤。
聲明處
AFHTTPSessionManager.h
POST:parameters:success:failure:
- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(nullable id)parameters success:(nullable void ( ^ ) ( NSURLSessionDataTask *task , id _Nullable responseObject ))success failure:(nullable void ( ^ ) ( NSURLSessionDataTask *_Nullable task , NSError *error ))failure
討論
創(chuàng)建和運行一個POST請求的NSURLSessionDataTask愿题。
參數(shù)
URLString
用于創(chuàng)建請求RUL的URL字符串损俭。
parameters
依據(jù)定制的請求序列化被編碼的參數(shù)。
success
一個當(dāng)任務(wù)成功完成時被執(zhí)行的塊潘酗。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和被定制的響應(yīng)序列化創(chuàng)建的響應(yīng)對象杆兵。
failure
一個當(dāng)任務(wù)完成單沒有成功時,或成功完成但是在解析響應(yīng)數(shù)據(jù)時遭遇一個錯誤時被執(zhí)行的塊仔夺。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和描述發(fā)生的網(wǎng)絡(luò)和解析出錯的錯誤琐脏。
聲明處
AFHTTPSessionManager.h
PUT:parameters:success:failure:
- (nullable NSURLSessionDataTask *)PUT:(NSString *)URLString parameters:(nullable id)parameters success:(nullable void ( ^ ) ( NSURLSessionDataTask *task , id _Nullable responseObject ))success failure:(nullable void ( ^ ) ( NSURLSessionDataTask *_Nullable task , NSError *error ))failure
討論
創(chuàng)建和運行一個PUT請求的NSURLSessionDataTask。
參數(shù)
URLString
用于創(chuàng)建請求RUL的URL字符串缸兔。
parameters
依據(jù)定制的請求序列化被編碼的參數(shù)日裙。
success
一個當(dāng)任務(wù)成功完成時被執(zhí)行的塊。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和被定制的響應(yīng)序列化創(chuàng)建的響應(yīng)對象惰蜜。
failure
一個當(dāng)任務(wù)完成單沒有成功時昂拂,或成功完成但是在解析響應(yīng)數(shù)據(jù)時遭遇一個錯誤時被執(zhí)行的塊。這個塊沒有返回值和帶兩個參數(shù):數(shù)據(jù)任務(wù)和描述發(fā)生的網(wǎng)絡(luò)和解析出錯的錯誤抛猖。
聲明處
AFHTTPSessionManager.h
initWithBaseURL:
- (instancetype)initWithBaseURL:(nullable NSURL *)url
討論
用指定的基礎(chǔ)URL初始化一個AFHTTPSessionManager對象格侯。
參數(shù)
url
HTTP客戶端的基礎(chǔ)URL鼻听。
返回值
一個新初始化的HTTP客戶端。
聲明處
AFHTTPSessionManager.h
initWithBaseURL:sessionConfiguration:
- (instancetype)initWithBaseURL:(nullable NSURL *)url sessionConfiguration:(nullable NSURLSessionConfiguration *)configuration
討論
使用指定的基礎(chǔ)URL初始化一個AFHTTPSessionManager對象联四。
這是特定的初始化方法撑碴。
參數(shù)
url
HTTP客戶端的基礎(chǔ)URL。
configuration
配置用來創(chuàng)建會話管理碎连。
返回值
一個新初始化的HTTP客戶端灰羽。
聲明處
AFHTTPSessionManager.h
// END 這個類的翻譯,真是的花了一點時間鱼辙。中間好幾次放棄廉嚼,去研究React Native。 每想到后面的類方法倒戏,重復(fù)的好多怠噪。 _