繼承: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)建和運(yùn)行一個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)建和運(yùn)行一個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)建和運(yùn)行一個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)建和運(yùn)行一個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)建和運(yùn)行一個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)建和運(yùn)行一個多部分的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)建和運(yùn)行一個多部分的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)建和運(yùn)行一個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)建和運(yùn)行一個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)建和運(yùn)行一個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ù)的好多。 _