繼承:AFURLSessionManager:NSObject
遵照:NSCopying, NSSecureCoding
聲明處:AFHTTPSessionManager.h
概述
AFHTTPSessionManager是AFURLSessionManager的子類,為了便利使用HTTP請求。當一個baseURL提供時,用相對路徑構造GET/POST等便利的方法來創建請求。
子類化注意
開發人員使用網絡服務并且將iOS7或Mac OS X 10.9或更新的版本作為目標版本,那么推薦使用AFHTTPSessionManager的子類,提供一個返回共享單例對象的類方法,此單例可以在整個應用中共享驗證或其他的配置信息。
對于開發人員設置目標版本為iOS6或Mac OS X 10.8 或更早的版本,那么AFHTTPRequestOperationManager可以實現相同的效果。
重載的方法
改變所有數據的任務操作結構的行為,同樣使用GET/POST等便利的方法,重載dataTaskWithRequest:completionHandler:.
序列化
一個HTTP端創建的請求,包含默認的HTTP頭和依據requestSerializer屬性編碼的參數,是遵照AFURLRequestSerialization的對象。
服務器返回的響應數據是被自動校驗過的并被responseSerializers屬性序列化的,是遵照AFURLResponseSerialization的對象。
URL構建使用相對路徑
對于HTTP便利方法,請求序列化構造URLs來之baseURL的相對路徑,使用提供的NSURL的方法 +URLWithString:relativeToURL:
. 當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末尾沒有斜杠時添加一個。否則當沒有一個末尾斜杠時,可能在使用路徑構架URLs時引起未預期的行為。
警告:后臺會話的Managers必須在他們使用期間擁有??梢酝ㄟ^創建一個application-wide或分享單例實例來完成。
任務
其他方法
baseURL 屬性
requestSerializer 屬性
responseSerializer 屬性
初始化
類方法
+ manager
實例方法
– initWithBaseURL:
– initWithBaseURL:sessionConfiguration:
創建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:
方法中根據相對路徑和GET/POST等便利方法來創建請求。
聲明處
AFHTTPSessionManager.h
requestSerializer
@property (nonatomic, strong) AFHTTPRequestSerializer<AFURLRequestSerialization> *requestSerializer
討論
使用requestWithMethod:URLString:parameters:
& multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock
這個兩個方法創建的請求,是通過這個屬性指定已經參數序列化好的一組默認請求頭構建的。默認設置下,這些內容設置在一個為GET,HEAD和DELETE或其他URL-form-encodes的HTTP消息體連接查詢字符串參數的AFHTTPRequestSerializer實例中。
警告: requestSerializer必須不能為nil。
聲明處
AFHTTPSessionManager.h
responseSerializer
@property (nonatomic, strong) AFHTTPResponseSerializer<AFURLResponseSerialization> *responseSerializer
討論
回應序列化是dateTaskWithRequest:success:failure:
創建的數據任務使用Get、Post等便利的方法,獲取服務器返回的響應進行驗證和通過響應序列進行序列化。默認這個屬性設置為AFJSONResponseSerializer的實例。
警告: responseSerializer必須不為nil。
聲明處
AFHTTPSessionManager.h
類方法
manager
+ (instancetype)manager
討論
創建和返回一個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
討論
創建和運行一個DELETE請求的NSURLSessionDataTask
參數
URLString
用于創建請求RUL的URL字符串。
parameters
依據定制的請求序列化被編碼的參數。
success
一個當任務成功完成時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和被定制的響應序列化創建的響應對象。
failure
一個當任務完成單沒有成功時,或成功完成但是在解析響應數據時遭遇一個錯誤時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和描述發生的網絡和解析出錯的錯誤。
聲明處
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
討論
創建和運行一個GET請求的NSURLSessionDataTask。
參數
URLString
用于創建請求RUL的URL字符串。
parameters
依據定制的請求序列化被編碼的參數。
downloadProgress
一個當下載進度更新時被執行的塊。注意這個塊是在會話隊列中被調用,而不是在主隊列。
success
一個當任務成功完成時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和被定制的響應序列化創建的響應對象。
failure
一個當任務完成單沒有成功時,或成功完成但是在解析響應數據時遭遇一個錯誤時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和描述發生的網絡和解析出錯的錯誤。
聲明處
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
討論
創建和運行一個GET請求的NSURLSessionDataTask。
參數
URLString
用于創建請求RUL的URL字符串。
parameters
依據定制的請求序列化被編碼的參數。
success
一個當任務成功完成時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和被定制的響應序列化創建的響應對象。
failure
一個當任務完成單沒有成功時,或成功完成但是在解析響應數據時遭遇一個錯誤時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和描述發生的網絡和解析出錯的錯誤。
聲明處
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
討論
創建和運行一個HEAD請求的NSURLSessionDataTask。
參數
URLString
用于創建請求RUL的URL字符串。
parameters
依據定制的請求序列化被編碼的參數。
success
一個當任務成功完成時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和被定制的響應序列化創建的響應對象。
failure
一個當任務完成單沒有成功時,或成功完成但是在解析響應數據時遭遇一個錯誤時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和描述發生的網絡和解析出錯的錯誤。
聲明處
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
討論
創建和運行一個PATCH請求的NSURLSessionDataTask。
參數
URLString
用于創建請求RUL的URL字符串。
parameters
依據定制的請求序列化被編碼的參數。
success
一個當任務成功完成時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和被定制的響應序列化創建的響應對象。
failure
一個當任務完成單沒有成功時,或成功完成但是在解析響應數據時遭遇一個錯誤時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和描述發生的網絡和解析出錯的錯誤。
聲明處
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
討論
創建和運行一個多部分的POST請求的NSURLSessionDataTask。
參數
URLString
用于創建請求RUL的URL字符串。
parameters
依據定制的請求序列化被編碼的參數。
block
一個帶一個參數和追加數據到HTTP消息體的塊。這個塊的參數是一個采用AFMultipartFormData協議的對象。
uploadProgress
一個當上傳進度更新時被執行的塊。注意這個塊是在會話隊列中被調用,而不是在主隊列。
success
一個當任務成功完成時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和被定制的響應序列化創建的響應對象。
failure
一個當任務完成單沒有成功時,或成功完成但是在解析響應數據時遭遇一個錯誤時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和描述發生的網絡和解析出錯的錯誤。
聲明處
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
討論
創建和運行一個多部分的POST請求的NSURLSessionDataTask。
參數
URLString
用于創建請求RUL的URL字符串。
parameters
依據定制的請求序列化被編碼的參數。
block
一個帶一個參數和追加數據到HTTP消息體的塊。這個塊的參數是一個采用AFMultipartFormData協議的對象。
success
一個當任務成功完成時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和被定制的響應序列化創建的響應對象。
failure
一個當任務完成單沒有成功時,或成功完成但是在解析響應數據時遭遇一個錯誤時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和描述發生的網絡和解析出錯的錯誤。
聲明處
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
討論
創建和運行一個POST請求的NSURLSessionDataTask。
參數
URLString
用于創建請求RUL的URL字符串。
parameters
依據定制的請求序列化被編碼的參數。
uploadProgress
一個當上傳進度更新時被執行的塊。注意這個塊是在會話隊列中被調用,而不是在主隊列。
success
一個當任務成功完成時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和被定制的響應序列化創建的響應對象。
failure
一個當任務完成單沒有成功時,或成功完成但是在解析響應數據時遭遇一個錯誤時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和描述發生的網絡和解析出錯的錯誤。
聲明處
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
討論
創建和運行一個POST請求的NSURLSessionDataTask。
參數
URLString
用于創建請求RUL的URL字符串。
parameters
依據定制的請求序列化被編碼的參數。
success
一個當任務成功完成時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和被定制的響應序列化創建的響應對象。
failure
一個當任務完成單沒有成功時,或成功完成但是在解析響應數據時遭遇一個錯誤時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和描述發生的網絡和解析出錯的錯誤。
聲明處
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
討論
創建和運行一個PUT請求的NSURLSessionDataTask。
參數
URLString
用于創建請求RUL的URL字符串。
parameters
依據定制的請求序列化被編碼的參數。
success
一個當任務成功完成時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和被定制的響應序列化創建的響應對象。
failure
一個當任務完成單沒有成功時,或成功完成但是在解析響應數據時遭遇一個錯誤時被執行的塊。這個塊沒有返回值和帶兩個參數:數據任務和描述發生的網絡和解析出錯的錯誤。
聲明處
AFHTTPSessionManager.h
initWithBaseURL:
- (instancetype)initWithBaseURL:(nullable NSURL *)url
討論
用指定的基礎URL初始化一個AFHTTPSessionManager對象。
參數
url
HTTP客戶端的基礎URL。
返回值
一個新初始化的HTTP客戶端。
聲明處
AFHTTPSessionManager.h
initWithBaseURL:sessionConfiguration:
- (instancetype)initWithBaseURL:(nullable NSURL *)url sessionConfiguration:(nullable NSURLSessionConfiguration *)configuration
討論
使用指定的基礎URL初始化一個AFHTTPSessionManager對象。
這是特定的初始化方法。
參數
url
HTTP客戶端的基礎URL。
configuration
配置用來創建會話管理。
返回值
一個新初始化的HTTP客戶端。
聲明處
AFHTTPSessionManager.h
// END 這個類的翻譯,真是的花了一點時間。中間好幾次放棄,去研究React Native。 每想到后面的類方法,重復的好多。 _