二次封装AFNetworking的网络请求

xiaoxiao2021-02-28  90

新建一个网络工具类NetworkTool。

NetworkTool.h文件:

// // NetworkTool.h // CRM // // Created by Mac on 2017/8/17. // Copyright © 2017年 Jing. All rights reserved. // @interface NetworkTool : AFHTTPSessionManager typedef void (^SuccessBlock) (NSDictionary *dataDict); typedef void (^FailBlock) (NSError *error); /** 创建网络请求工具类的单例 @return 单例类 */ + (instancetype)sharedInstance; /** 使用GET方式发送请求 @param method 请求的方法名 @param paramters 请求的参数集合 @param successBlock 请求成功的回调 @param failBlock 请求失败的回调 */ - (void)getRequestWithMethod:(NSString *)method Paramters:(NSDictionary *)paramters Success:(SuccessBlock)successBlock Fail:(FailBlock)failBlock; /** 使用POST方式发送请求 @param method 请求的方法名 @param paramters 请求的参数集合 @param successBlock 请求成功的回调 @param failBlock 请求失败的回调 */ - (void)postRequestWithMethod:(NSString *)method Paramters:(NSDictionary *)paramters Success:(SuccessBlock)successBlock Fail:(FailBlock)failBlock; @end

NetworkTool.m文件:

// // NetworkTool.m // CRM // // Created by Mac on 2017/8/17. // Copyright © 2017年 Jing. All rights reserved. // #import "NetworkTool.h" #import "Tools.h" static NSString * const webService = @"http://103.15.217.202:8083/WevService.asmx/"; @interface NetworkTool () @property (nonatomic) AFHTTPSessionManager *sessionManager; @end @implementation NetworkTool @synthesize sessionManager; + (instancetype)sharedInstance { static NetworkTool *instance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ instance = [[self alloc] initWithBaseURL:nil]; }); return instance; } - (void)initSessionManager { sessionManager = [AFHTTPSessionManager manager]; sessionManager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; // sessionManager.securityPolicy.allowInvalidCertificates = YES; sessionManager.requestSerializer = [AFJSONRequestSerializer serializer]; sessionManager.responseSerializer = [AFHTTPResponseSerializer serializer]; [sessionManager.requestSerializer setValue: @"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; // [sessionManager.requestSerializer setValue: @"crm" forHTTPHeaderField:@"CallName"]; // [sessionManager.requestSerializer setValue: @"pass" forHTTPHeaderField:@"CallPassword"]; // manager.operationQueue.maxConcurrentOperationCount = 5; //请求队列的最大并发数 sessionManager.requestSerializer.timeoutInterval = kTimeoutInterval; } - (void)getRequestWithMethod:(NSString *)method Paramters:(NSDictionary *)paramters Success:(SuccessBlock)successBlock Fail:(FailBlock)failBlock { [self initSessionManager]; NSString *urlString = [NSString stringWithFormat:@"%@%@", webService, method]; [sessionManager GET:urlString parameters:paramters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { if (successBlock) { NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil]; successBlock(dict); } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { if (failBlock) { failBlock(error); NSLog(@"网络异常 - T_T%@", error); } } ]; } - (void)postRequestWithMethod:(NSString *)method Paramters:(NSDictionary *)paramters Success:(SuccessBlock)successBlock Fail:(FailBlock)failBlock { [self initSessionManager]; NSString *urlString = [NSString stringWithFormat:@"%@%@", webService, method]; [sessionManager POST:urlString parameters:paramters progress:nil success:^(NSURLSessionTask * _Nonnull task, id _Nullable reponseObject) { [Tools hideHUDLoading]; if (successBlock) { NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:reponseObject options:NSJSONReadingMutableLeaves error:nil]; dict = [Tools dictionaryWithJsonString:[dict objectForKey:@"d"]]; if ([dict isKindOfClass:[NSDictionary class]]) { successBlock(dict); } } } failure:^(NSURLSessionDataTask * _Nonnull task, NSError * _Nonnull error) { if (failBlock) { failBlock(error); [Tools hideHUDLoading]; [Tools showHUDServiceError]; NSLog(@"服務器連接有誤 - T_T\n%@",error); } } ]; } @end
转载请注明原文地址: https://www.6miu.com/read-35278.html

最新回复(0)