奔跑吧 iOSiOS开发-网络

ios 对请求工具AFNetWoring封装自己的一些用法分享(

2017-12-12  本文已影响55人  HurryUpCheng

一个项目中,请求是最基本的功能,一般有点经验的都会把请求封装成一个工具类,方便修改和降低第三方代码的入侵

///get
///url:请求地址
///parameters:参数
///refreshStyle:yes有加载动画,no没有加载动画
///progress:请求进度
///success:请求成功后台指定code
///successOther:其他code回调
///failure:请求失败
///endRfresh:结束刷新等的一些操作写在里面
- (void)czh_get:(NSString *)url parameters:(NSMutableDictionary *)parameters refreshStyle:(BOOL)refreshStyle progress:(void(^)(NSProgress * downloadProgress))progress  success:(void (^)(id responseObject))success successOther:(void (^)(id responseObject))successOther failure:(void (^)(NSError *error))failure endRfresh:(void (^)())endRfresh;

///post
- (void)czh_post:(NSString *)url parameters:(NSMutableDictionary *)parameters refreshStyle:(BOOL)refreshStyle progress:(void(^)(NSProgress * downloadProgress))progress success:(void (^)(id responseObject))success successOther:(void (^)(id responseObject))successOther failure:(void (^)(NSError *error))failure endRfresh:(void (^)())endRfresh;
/**有刷新的使用这个方法,吧结束刷新写在endRfresh*/
- (void)czh_get:(NSString *)url parameters:(NSMutableDictionary *)parameters refreshStyle:(BOOL)refreshStyle success:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure endRfresh:(void (^)())endRfresh;
/**get请求需要进度*/
- (void)czh_get:(NSString *)url parameters:(NSMutableDictionary *)parameters progress:(void(^)(NSProgress * downloadProgress))progress success:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure;
/**get请求不需要进度*/
- (void)czh_get:(NSString *)url parameters:(NSMutableDictionary *)parameters success:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure;
/**get请求不需要进度并且返回除了code=0的其他情况*/
- (void)czh_get:(NSString *)url parameters:(NSMutableDictionary *)parameters success:(void (^)(id responseObject))success successOther:(void (^)(id responseObject))successOther failure:(void (^)(NSError *error))failure ;
/**get请求不需要进度并且返回除了code=0的其他情况*/
- (void)czh_get:(NSString *)url parameters:(NSMutableDictionary *)parameters refreshStyle:(BOOL)refreshStyle success:(void (^)(id responseObject))success successOther:(void (^)(id responseObject))successOther failure:(void (^)(NSError *error))failure endRfresh:(void (^)())endRfresh;

开发中多多少少会有很多接口是好多地方用得到的,如果还是用上面的封装使用的话这样又会有问题了,比如这个接口要增加一个必要的参数,那么就要找到所有的地方每个地方都加一个,这样就很麻烦,所以我对使用多的接口又会进行一层封装,写一个全局请求工具类,把使用较多的接口都封装在里面

///这个接口是获取自己的信息
+ (void)czh_getOwnInfoWithSuccessBlock:(void(^)(void))successBlock;
///这个是更新信息,这样写只用传入修改的参数
+ (void)czh_updateInfoWithParameters:(NSMutableDictionary *)parameters successBlock:(void(^)(void))successBlock;
///这个是发送消息接口,除了成功code为0的时候,还要判断code不为0某种特定的code来提示弹窗alert提示用户去充值,或者开通vip才能继续聊天
+ (void)czh_sendMessWithParameters:(NSMutableDictionary *)parameters successBlock:(void(^)(void))successBlock  otherCode:(void (^)(id obj))otherCode;
///关注接口只需要传入对方的uid,对成功做处理
+ (void)czh_addAttentionWithUserId:(NSString *)userId successBlock:(void(^)(void))successBlock;
///取消关注接口只需要传入对方的uid,对成功做处理
+ (void)czh_removeAttentionWithUserId:(NSString *)userId successBlock:(void(^)(void))successBlock;
- (void)updateInfoWithNickname:(NSString *)nickname {
    
    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
    parameters[@"nickname"] = nickname;
    
    [CZHGlobalRequestTool czh_updateInfoWithParameters:parameters successBlock:^{
        
    }];
}


- (void)getOwnInfo {
    [CZHGlobalRequestTool czh_getOwnInfoWithSuccessBlock:^{
        
    }];
}


///只在当前控制器使用
- (void)usedOnlyInCurrentController {
    
    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
    parameters[@"s"] = @"only";
    parameters[@"uid"] = @"";
    parameters[@"token"] = @"";
    
    [CZHHttpTool czh_get:@"https://www.baidu.com" parameters:parameters success:^(id responseObject) {
        
    }];
}

///只在当前控制器使用
- (void)refreshUsedOnlyInCurrentControllerWithShowLoadingView:(BOOL)showLoadingView {
    
    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
    parameters[@"s"] = @"only";
    parameters[@"uid"] = @"";
    parameters[@"token"] = @"";
    parameters[@"pageSize"] = @"1";
    
    
    [CZHHttpTool czh_get:@"https://www.baidu.com" parameters:parameters success:^(id responseObject) {
        
    } successOther:^(id responseObject) {
        
    } failure:^(NSError *error) {
        
    } endRfresh:^{
        
    } showLoadingView:showLoadingView];
}

github地址
简书地址

公司的项目.png

    公司的项目,求支持,如果发现什么问题,可以留言反应,感激不尽    

上一篇下一篇

猜你喜欢

热点阅读