美文网首页
iOS中的AFHttpSessionManager.h 即为ht

iOS中的AFHttpSessionManager.h 即为ht

作者: helinyu | 来源:发表于2017-05-12 22:44 被阅读272次
两个管理的网络类

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
    )parameters

                     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:
*/这个请求是带有下载的请求的方式:

  • (
    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 这个类中基本是可以进行相关的内容来进行实现的。
——> 这个类中基本上就是对这个相关的回话内容来发送网络请求的

相关文章

网友评论

      本文标题:iOS中的AFHttpSessionManager.h 即为ht

      本文链接:https://www.haomeiwen.com/subject/xpmtxxtx.html