AFHTTPSessionManager 是AFURLSessionManager的子类,因为这个类可以更加方便通过http来进行请求,get或者post的方法。
ios6 之前os x10.8 都是使用AFHTTPSessionOperationManager 具有相同的作用;
为了个可以get、post方法更加方便,我们重写了dataTAskWithRequest:completionHandler: 这个方法。AFURLRequestSerialization 发送请求,系列化,因为http客户端会有相应的默认的头和编码参数,AFURLResponseSerialization 相应返回。
NSURL+urlWithString 相关的方法更加的方便
AFHTTPSessionManager 类
@interface AFHTTPSessionManager : AFURLSessionManager <NSSecureCoding, NSCopying>
1)@property (readonly, nonatomic, strong, nullable) NSURL//网络请求路径链接 *baeURL;
requestWithMethod:URLString:parameters:(常用语这个方法)
这个方法中使用基本的url,用于发送网络请求
requestWithMethod:URLString:parameters:
& multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:
2) @property (nonatomic, strong) AFHTTPRequestSerializer <AFURLRequestSerialization> * requestSerializer;
默认的头部使用系列化参数通过这个参数指定这个属性,系列化了字符串参数的请求 ,
使用的方式是get,head,delete,url-form-encodes http信息体
3)@property (nonatomic, strong) AFHTTPResponseSerializer <AFURLResponseSerialization> * responseSerializer;
响应的系列化的信息题 (这个对象对象和上面的的对象是对应的)
dataTaskWithRequest:success:failure 这个方法中,
4)+ (instancetype)manager;
创建一个 AFHTTPSessionManager 对象, (也就是http回话管理对象)
5)- (instancetype)initWithBaseURL:(nullable NSURL *)url;
初始化一个AFHTTPSessionManager 对象,这个对象带有url,http客户端的
6)- (instancetype)initWithBaseURL:(nullable NSURL *)url
sessionConfiguration:(nullable NSURLSessionConfiguration *)configuration NS_DESIGNATED_INITIALIZER;
返回一个信息的http客户端,通过一个基本的url,回话配置NSURLSessionConfiguration来创建一个信息的会话管理。
【上面的3个方法都是创建一个AFHTTPSessionManager回话管理对象】
http的网路请求
<1>http的get请求
创建NSURLSessionDataTask(会话的数据任务),
- (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 DEPRECATED_ATTRIBUTE;
网络请求中的get的方法,
成功的block:一个task 、 和一个responseObject的系列化返回对象
失败的block:一个task、 和一个error的返回的码 (e rror describing the network or parsing error that occurred.也就是这个错误就是用来描述网络好解析的错误)
8)
创建NSURLSessionDataTask(会话的数据任务),(多了一个NSProgress的类对象,系统自带的一个方法)
- (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;
只是这里的区别:
(这就是用于下载更新的,被调用在一个会话队列中,但不是主队列)
<2>http的 head的网络请求
@see -dataTaskWithRequest:completionHandler:
*/
- (
nullable NSURLSessionDataTask *)HEAD:(NSString
*)URLString
parameters:(
nullable id
)parameters
success:(
nullable void (^)(NSURLSessionDataTask *task))success
failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure;
9)http:的post的请求方法
@see -dataTaskWithRequest:completionHandler:
*/
-
(
nullable NSURLSessionDataTask *)POST:(NSString
*)URLString
parameters:(
nullable id
)parameterssuccess:(
nullable void (^)(NSURLSessionDataTask *task, id _Nullable responseObject))success
failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failure DEPRECATED_ATTRIBUTE;
@see -dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:
*/这个请求是带有下载的请求的方式:
- (
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;
@see -dataTaskWithRequest:completionHandler:
*/待有form的方式来进行发送网络请求:
- (
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 DEPRECATED_ATTRIBUTE;
@see -dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:
*/这种方式是增加了uploadProgress 、 AFMultipartFormData的数据结构,以及我们的下载的方式进行
- (
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;
<3>下面是http的put的方式来发送网路请求
@see -dataTaskWithRequest:completionHandler:
*/
- (
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;
<4>
@see -dataTaskWithRequest:completionHandler:
*/这个是patch的发送的网路请求
- (
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;
<5>
下面是delete的方式进行发送网路的请求
@see -dataTaskWithRequest:completionHandler:
*/
- (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;
@end
AFHTTPSessionManager 这个类中基本是可以进行相关的内容来进行实现的。
——> 这个类中基本上就是对这个相关的回话内容来发送网络请求的