cdts/xdts-ios 3/TreeHole/CYHResetCode/CYH/NetworkingTool/NetworkingManager.h

94 lines
4.0 KiB
C
Raw Normal View History

2023-07-27 09:20:00 +08:00
//
// NetworkingManager.h
// SRKnow
//
// Created by CYH on 2020/7/21.
// Copyright © 2020 shirong. All rights reserved.
//
#import <Foundation/Foundation.h>
#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 <NSString *, NSString *> *)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<NSString *,NSString *> *)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 <NSData *>*)datas progress:(nullable void (^)(NSProgress *uploadProgress))uploadProgress completionHandler:(void (^)(NSArray <NSString *>*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