美文网首页
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