iOS AFNetworking 3.0二次封装(一)

来源:互联网 发布:中文期刊数据库 编辑:程序博客网 时间:2024/06/08 14:09

首先,这篇文章针对与菜鸟级别,大神路过的请勿拍砖。

在很多时候我们时候,我们在使用AFNetworking 网络请求的时候,都要用到AFHTTPSessionManager 的类,去创建然后去设置一些不太用的到的参数。多数情况下,这些都是在无用功。
所以在闲暇的时候,把AF二次封装了一下,供自己在项目中的使用。在下次的博客中,会放出AFNetworking 的全面解析,欢迎指导学习。
现在以post请求为例:

/** *  网络请求类型 */typedef NS_ENUM(NSUInteger,HttpRequestType) {    /**     *  get请求     */    HttpRequestTypeGet = 0,    /**     *  post请求     */    HttpRequestTypePost};
/** *  发送post请求 * *  @param URLString  请求的网址字符串 *  @param parameters 请求的参数 *  @param progress   请求的进度条 *  @param success    请求成功的回调 *  @param failure    请求失败的回调 */+ (void)postWithURLString:(NSString *)URLString                       parameters:(id)parameters                         progress:(void(^)(NSProgress *progress ))progress                          success:(void (^)(id responseObject))success                          failure:(void (^)(NSError *error))failure;

.h文件中我们去实现下把不必要的代码写进去

#pragma mark -- POST请求 --+ (void)postWithURLString:(NSString *)URLString               parameters:(id)parameters                 progress:(void(^)(NSProgress * _Nullable))progress                  success:(void (^)(id))success                  failure:(void (^)(NSError *))failure{    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    manager.requestSerializer = [AFHTTPRequestSerializer serializer];    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json", @"text/plain", @"text/html", nil];    [manager POST:URLString parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {        progress(uploadProgress);    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {        if (success) {            success(responseObject);        }    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {        if (failure) {            failure(error);        }    }];}

上面我们可以看到_Nullable型就是可以为null的修饰符,Xcode在推出swift的时候,用到一个宏定义这个宏默认是不能为null的。这个在以后的AFNetworking 详细解析中会讲解的。

0 0
原创粉丝点击