// // NetworkingManager.h // SRKnow // // Created by CYH on 2020/7/21. // Copyright © 2020 shirong. All rights reserved. // #import #import "NetResponseModel.h" //#import "GraceHudTool.h" NS_ASSUME_NONNULL_BEGIN ///环境类型 typedef enum : NSUInteger { NetworkingContextType_Test, NetworkingContextType_PreRelease, NetworkingContextType_Release, } NetworkingContextType; ///主域名 - 本地缓存 - cacheKey #define MainHostURL_CacheKEY @"MainHostURL_CacheKEY" ///主域名 - 被赋值或修改 - 通知 - changeNotifyKey #define MainHostURL_DidChangeNotifyKEY @"MainHostURL_DidChangeNotifyKEY" @interface NetworkingManager : NSObject ///为了方便切换环境,设计成单例 + (instancetype)shared; ///环境切换 @property(nonatomic, assign)NetworkingContextType networkingContextType; //设置请求头字典,设置一次就好 - (void)setScheduleRequestHeader:(NSDictionary *)reqHeader; #pragma mark - POST /** * 项目定制_POST请求 * @param targetUrl url路径 * @param paramDic 参数 * @param successBlock 回调 * @param failureBlock 回调 */ + (nullable NSURLSessionDataTask *)scheduledPOST:(NSString *)targetUrl parameters:(nullable id)paramDic success:(nullable void (^)(NSURLSessionDataTask *task, NetResponseModel* _Nullable responseModel))successBlock failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failureBlock; /** * POST请求 * @param fullUrl 完整URL地址:域名/路径 * @param paramDic 参数 * @param headerDic 请求头 * @param progressBlock 回调 * @param successBlock 回调 * @param failureBlock 回调 + (nullable NSURLSessionDataTask *)POST:(NSString *)fullUrl parameters:(nullable id)paramDic headers:(nullable NSDictionary *)headerDic progress:(nullable void (^)(NSProgress *progress))progressBlock success:(nullable void (^)(NSURLSessionDataTask *task, NetResponseModel* _Nullable responseModel))successBlock failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failureBlock; */ #pragma mark - GET /** * GET请求 * @param targetUrl URL路径 * @param paramDic 参数 * @param successBlock 回调 * @param failureBlock 回调 */ + (nullable NSURLSessionDataTask *)scheduledGET:(NSString *)targetUrl parameters:(nullable NSDictionary *)paramDic success:(nullable void (^)(NSURLSessionDataTask *task, NetResponseModel* _Nullable responseModel))successBlock failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failureBlock; /** * GET请求 * @param fullUrl 完整URL地址:域名/路径 * @param paramDic 参数 * @param headerDic 请求头 * @param progressBlock 回调 * @param successBlock 回调 * @param failureBlock 回调 + (nullable NSURLSessionDataTask *)GET:(NSString *)fullUrl parameters:(NSDictionary *)paramDic headers:(nullable NSDictionary *)headerDic progress:(nullable void (^)(NSProgress *progress))progressBlock success:(nullable void (^)(NSURLSessionDataTask *task, NetResponseModel* _Nullable responseModel))successBlock failure:(nullable void (^)(NSURLSessionDataTask * _Nullable task, NSError *error))failureBlock; */ #pragma mark - 上传 + (void)scheduleUploadFiles:(NSString *)url fileDatas:(NSArray *)datas progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgress completionHandler:(void (^)(NSArray *fileUrlPaths))completionHandler; /// upload上传文件 /// @param url 服务器URL /// @param data 文件二进制数据 /// @param uploadProgress 上传进度回调 /// @param completionHandler 上传完成回调 + (nullable NSURLSessionUploadTask *)scheduleUploadFile:(NSString *)url fileData:(NSData *)data progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgress completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler; @end NS_ASSUME_NONNULL_END