网络请求封装错误码

+(void)taoqipost:(NSString *)url params:(NSMutableDictionary *)params controller:(UIViewController *)VC success:(void (^)(id _Nullable))success errcode:(void (^)(id _Nullable))errcode failure:(void (^)(NSError * _Nullable))failure
{
    
    
    // 1.创建请求管理者
    AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];//请求数据格式为json
    manager.responseSerializer = [AFJSONResponseSerializer serializer];//响应数据格式
    manager.requestSerializer.timeoutInterval = 10.0;//超时时间10秒
    manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObjectsFromSet:[NSSet setWithObjects:@"application/json", @"text/json" , @"text/html", @"text/plain", @"text/javascript", nil]];
    
    NSDictionary *commonParam = [NSDictionary dictionaryWithObjectsAndKeys:
                                 gDevId,  @"devid",
                                 gToken,  @"token",
                                 [NSNumber numberWithInt:DEV_TYPE], @"devtype",
                                 [NSNumber numberWithInt:APPVER], @"appver",
                                 [NSNumber numberWithInt:APP_ID], @"appid",
                                 nil];
    NSLog(@"token==%@",gToken);
    
    NSMutableDictionary *bodyDic = [NSMutableDictionary dictionaryWithDictionary:commonParam];//字典合并
    for (id key in params) {
        id value=[params objectForKey:key];
        [bodyDic setObject:value forKey:key];
    }
    NSLog(@"拼接的字典%@",bodyDic);
    [manager POST:url parameters:bodyDic progress:^(NSProgress * _Nonnull uploadProgress) {
        
        
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
         if ([responseObject[@"errcode"] integerValue]==0) {
             
             if (success) {
                 success(responseObject);//code==0的时候传出去直接解析
             }
         }else{
             if (errcode) {
                 errcode(responseObject[@"errcode"]);//code!=0的时候只要传出错误码就行
             }
         }
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        if (failure) {
            failure(error);//网络错误等等
        }
        
    }];
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容