继承: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。 每想到后面的类方法,重复的好多。 _