首页 > 手机专区 > 手机APP >

AF3.0如何进行Get与Post请求封装

来源:互联网 2023-03-04 00:02:41 82

AFNetworking3.0更新针对于Get与Post请求进行二次封装,更方便进行数据请求。iRE办公区 - 实用经验教程分享!

工具/原料

  • Xcode
  • AFNetworking3.0

方法/步骤

  • 1

    在这里采用手动导入库的方式,将AFNetworking3.0库下载之后直接将AFNetworking3.0文件夹拖动到工程指定目录下,AFNetworking.h作为使用的全局文件,具体目录如下:iRE办公区 - 实用经验教程分享!

    AF3.0如何进行Get与Post请求封装iRE办公区 - 实用经验教程分享!

  • 2

    在这里将请求类封装成为单例,命名为NetWorkingManager,继承于AFHTTPSessionManager,并且声明完成度回调block和完成回调block,如下:iRE办公区 - 实用经验教程分享!

    typedef void(^BlockProgress)(NSProgress *downloadProgress);iRE办公区 - 实用经验教程分享!

    typedef void (^BlockFinish)(id responseObject, ResultCode resultCode, NSString *resultMessage);iRE办公区 - 实用经验教程分享!

    AF3.0如何进行Get与Post请求封装iRE办公区 - 实用经验教程分享!

  • 3

    进行变量枚举,声明请求状态的枚举值与请求错误状态枚举,具体如下:iRE办公区 - 实用经验教程分享!

    AF3.0如何进行Get与Post请求封装iRE办公区 - 实用经验教程分享!

  • 3相关内容未经许可获取自百度经验
  • 4

    get请求外部封装方法如下:iRE办公区 - 实用经验教程分享!

    - (void )getResultWithParameter:(NSDictionary *)parameter url:(NSString *)url progress:(BlockProgress )blockProgress blockFinish:(BlockFinish )blockFinish;iRE办公区 - 实用经验教程分享!

    parameter:参数字典。iRE办公区 - 实用经验教程分享!

    url:请求的url。iRE办公区 - 实用经验教程分享!

    blockProgress:完成度回调blockiRE办公区 - 实用经验教程分享!

    blockFinish:完成回调blockiRE办公区 - 实用经验教程分享!

    AF3.0如何进行Get与Post请求封装iRE办公区 - 实用经验教程分享!

  • 5

    post请求外部封装方法如下:iRE办公区 - 实用经验教程分享!

    - (void )postResultWithParameter:(NSDictionary *)parameter url:(NSString *)url progress:(BlockProgress )blockProgress blockFinish:(BlockFinish )blockFinishiRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    parameter:参数字典。iRE办公区 - 实用经验教程分享!

    url:请求的url。iRE办公区 - 实用经验教程分享!

    blockProgress:完成度回调blockiRE办公区 - 实用经验教程分享!

    blockFinish:完成回调blockiRE办公区 - 实用经验教程分享!

    AF3.0如何进行Get与Post请求封装iRE办公区 - 实用经验教程分享!

  • 6

    单例实现如下:iRE办公区 - 实用经验教程分享!

    (NetWorkingManager *)sharedManager{iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    static NetWorkingManager *netWorkSingleton = nil;iRE办公区 - 实用经验教程分享!

    static dispatch_once_t onceToken;iRE办公区 - 实用经验教程分享!

    dispatch_once(&onceToken, ^{iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    netWorkSingleton = [[self alloc] init];iRE办公区 - 实用经验教程分享!

    });iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    return netWorkSingleton;iRE办公区 - 实用经验教程分享!

    }iRE办公区 - 实用经验教程分享!

    AF3.0如何进行Get与Post请求封装iRE办公区 - 实用经验教程分享!

  • 7

    请求的信息设置,在这里初始化AFHTTPSessionManager类,设置请求的Serializer与超时时间等,如下:iRE办公区 - 实用经验教程分享!

    - (AFHTTPSessionManager *)requestBaseHttp{iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    AFHTTPSessionManager *sessionManager = [AFHTTPSessionManager manager];iRE办公区 - 实用经验教程分享!

    //header 设置iRE办公区 - 实用经验教程分享!

    // [sessionManager.requestSerializer setValue:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] forHTTPHeaderField:@"appversion"];iRE办公区 - 实用经验教程分享!

    AFJSONResponseSerializer *jsonResult = [AFJSONResponseSerializer serializer];iRE办公区 - 实用经验教程分享!

    jsonResult.removesKeysWithNullValues = YES;iRE办公区 - 实用经验教程分享!

    sessionManager.responseSerializer = jsonResult;iRE办公区 - 实用经验教程分享!

    sessionManager.requestSerializer.timeoutInterval = TIMEOUT;iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    return sessionManager;iRE办公区 - 实用经验教程分享!

    }iRE办公区 - 实用经验教程分享!

    AF3.0如何进行Get与Post请求封装iRE办公区 - 实用经验教程分享!

  • 8

    get请求实现如下:iRE办公区 - 实用经验教程分享!

    AFHTTPSessionManager *sessionManager = [self requestBaseHttp];iRE办公区 - 实用经验教程分享!

    [sessionManager GET:url parameters:parameter progress:^(NSProgress * _Nonnull downloadProgress) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    if (blockProgress) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    blockProgress(downloadProgress);iRE办公区 - 实用经验教程分享!

    }iRE办公区 - 实用经验教程分享!

    } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    ResultCode resultCode = [self checkResultCodeWithCodeString:[NSString stringWithFormat:@"%@",responseObject[@"code"]]];iRE办公区 - 实用经验教程分享!

    NSString *resultMessage = responseObject[@"message"];iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    if (blockFinish) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    blockFinish(responseObject, resultCode ,resultMessage);iRE办公区 - 实用经验教程分享!

    }iRE办公区 - 实用经验教程分享!

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    NSString *resultMessage = [self showErroInfoWithError:error];iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    if (blockFinish) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    blockFinish(nil ,ResultCode_UnknowError, resultMessage);iRE办公区 - 实用经验教程分享!

    }iRE办公区 - 实用经验教程分享!

    }];iRE办公区 - 实用经验教程分享!

    AF3.0如何进行Get与Post请求封装iRE办公区 - 实用经验教程分享!

  • 9

    post请求实现如下:iRE办公区 - 实用经验教程分享!

    AFHTTPSessionManager *sessionManager = [self requestBaseHttp];iRE办公区 - 实用经验教程分享!

    [sessionManager POST:url parameters:parameter progress:^(NSProgress * _Nonnull uploadProgress) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    if (blockProgress) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    blockProgress(uploadProgress);iRE办公区 - 实用经验教程分享!

    }iRE办公区 - 实用经验教程分享!

    } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    ResultCode resultCode = [self checkResultCodeWithCodeString:[NSString stringWithFormat:@"%@",responseObject[@"code"]]];iRE办公区 - 实用经验教程分享!

    NSString *resultMessage = responseObject[@"message"];iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    if (blockFinish) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    blockFinish(responseObject, resultCode ,resultMessage);iRE办公区 - 实用经验教程分享!

    }iRE办公区 - 实用经验教程分享!

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    NSString *resultMessage = [self showErroInfoWithError:error];iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    if (blockFinish) {iRE办公区 - 实用经验教程分享!

    iRE办公区 - 实用经验教程分享!

    blockFinish(nil ,ResultCode_UnknowError, resultMessage);iRE办公区 - 实用经验教程分享!

    }iRE办公区 - 实用经验教程分享!

    }];iRE办公区 - 实用经验教程分享!

    AF3.0如何进行Get与Post请求封装iRE办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!iRE办公区 - 实用经验教程分享!


    标签: XCODE苹果iphone

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码