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

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

来源:互联网 2023-02-21 08:53:31 版权归原作者所有,如有侵权,请联系我们

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

工具/原料

  • Xcode
  • AFNetworking3.0

方法/步骤

  • 1

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

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

  • 2

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

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

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

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

  • 3

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

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

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

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

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

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

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

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

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

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

  • 5

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

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

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

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

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

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

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

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

  • 6

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


    标签: XCODE苹果iphone请求

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