AFNetWorking二次封装

AFNetWorking的方法,平时使用也就够用了,但是为了在以后程序中可以多次利用,所以进行了二次封装。我的每一个项目中都会创建一个基类,在基类中进行navigationController的设置,以及网络请求的封装。这样,在整个项目中的UIViewController继承这个基类,那么在其他页面中就可以使用这个积累中的方法。

以下是我的AFNetWorking二次封装

  • .h文件中
// 网络请求类型
typedefNS_ENUM(NSUInteger,HttpRequestType) {
 //get请求
HttpRequestTypeGet =0,
// post请求
HttpRequestTypePost
};
/**
*发送网络请求
*
*@param url请求的网址字符串
*@param parameters请求的参数
*@param type请求的类型
*@param success请求成功的结果
*@param failure请求失败的结果
*/
- (void)networkRequest:(NSString*)url andParameters:(NSDictionary*)parameters andRequestType:(HttpRequestType*)type success:(void(^)(id responseObject))success failure:(void(^)(NSError* error))failure;
/**
*上传图片
*
*@param URLString  上传图片的网址字符串
*@param parameters  上传图片的参数
*@param uploadParam 上传图片的信息
*@param success    上传成功的回调
*@param failure    上传失败的回调
*/
- (void)uploadWithURLString:(NSString*)url  parameters:(id)parameters uploadParam:(UploadParam *)uploadParam  success:(void(^)())success  failure:(void(^)(NSError*error))failure;
  • .m文件中
//网络请求
-(void)networkRequest:(NSString *)url andParameters:(NSDictionary *)parameters andRequestType:(HttpRequestType)type success:(void (^)(id responseObject))success failure:(void (^)(NSError * error))failure{
     if (type == 0) {
        [self.mgr GET:url parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            if (success) {
                success(responseObject);
            }
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            if (failure) {
                failure(error);
            }
        }];
    }
    if (type == 1){
        [self.mgr POST:url parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            if (success) {
                success(responseObject);
            }
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            NSLog(@"error%@",error);
            if (failure) {
                failure(error);
            }
        }];
    }
}
-(void)uploadWithURLString:(NSString *)url parameters:(id)parameters uploadParam:(NSDictionary *)uploadParam success:(void (^)())success failure:(void (^)(NSError *))failure{
    [self.mgr POST:url parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        [formData appendPartWithFileData:(图片的二进制数据) name:(服务器对应的参数名称) fileName:(文件的名称(上传到服务器后,服务器保存的文件名)) mimeType:(文件的MIME类型(image/png,image/jpg等))];
    } progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject){
        if (success) {
            success(responseObject);
        }
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        if (failure) {
            failure(error);
        }
    }];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容