首页 > 手机专区 > 苹果手机 >

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

来源:互联网 2023-02-21 08:53:31 284

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

工具/原料

  • Xcode
  • AFNetworking3.0

方法/步骤

  • 1

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

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

  • 2

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

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

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

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

  • 3

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

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

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

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

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

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

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

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

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

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

  • 5

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

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

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

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

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

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

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

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

  • 6

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


    标签: XCODE苹果iphone请求

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