Files
featherVoice/QXLive/Network/QXRequest.h
2025-08-08 10:49:36 +08:00

161 lines
5.5 KiB
Objective-C

//
// QXRequset.h
// YSDTrucksProject
//
// Created by 党凯 on 2020/7/1.
// Copyright © 2020 党凯. All rights reserved.
//
#import <Foundation/Foundation.h>
//无网络
#define NOT_NETWORK_ERROR [NSError errorWithDomain:@"com.wufeng.Networking.ErrorDomain" code:-999 userInfo:@{NSLocalizedDescriptionKey:@"无网络"}]
typedef NS_ENUM(NSUInteger, NetworkMethod) {
GET = 0,
POST,
PUT,
DELETE,
PATCH
};
typedef NS_ENUM(NSUInteger, RequestCachePolicy) {
/** 正在刷新中的状态 */
CacheDataThenLoad = 0, // 有缓存就先返回缓存,同步请求数据
IgnoringLocalCacheData, // 忽略缓存,重新请求
CacheDataElseLoad, // 有缓存就用缓存,没有缓存就重新请求(用于数据不变时)
CacheDataDontLoad, // 有缓存就用缓存,没有缓存就不发请求,当做请求出错处理(用于离线模式)
};
typedef void (^NeQXRequsetSuccessBlock)(id responseObject); //成功Block
typedef void (^NeQXRequsetCacheSuccessBlock)(id responseObject, BOOL isCache); //缓存成功Block
typedef void (^NeQXRequsetFailedBlock)(NSError * error,NSString * msg,NSURLSessionDataTask * task);//失败Block
typedef void (^NeQXRequsetProgressBlock)(float progress); //进度Block
typedef void (^NetResponseCache)(id responseObject);
typedef void (^QXDownloadCompletionHandler)(NSURLResponse *response,
NSURL * filePath,
NSError * error);
@interface QXRequset : NSObject
+(instancetype _Nonnull )shareInstance;
/**
* 当前的网络状态
*/
@property (nonatomic, assign,readonly) AFNetworkReachabilityStatus AFNetWorkStatus;
/**
* 请求者
*/
@property (nonatomic, strong) AFHTTPSessionManager * _Nonnull sharedManager;
/**
请求
@param urlString url
@param parameters 参数
@param type 请求类型
@param policy 缓存策略
@param success 成功
@param cache 缓存
@param fail 失败
*/
- (NSURLSessionTask*_Nullable)requestWithUrl:(NSString *_Nonnull)urlString
parameters:(id _Nonnull)parameters
type:(NetworkMethod)type
cachePolicy:(RequestCachePolicy)policy
success:(NeQXRequsetSuccessBlock _Nonnull)success
cache:(NetResponseCache)cache
failure:(NeQXRequsetFailedBlock _Nonnull)fail;
/**
* Get形式提交数据
*
* @param urlString Url
* @param parameters 参数
* @param success 成功Block
* @param fail 失败Block
*/
- (NSURLSessionTask*_Nullable)getWithUrl:(NSString *_Nonnull)urlString
parameters:(id _Nonnull)parameters
needCache:(BOOL)needCache
success:(NeQXRequsetSuccessBlock _Nonnull)success
fail:(NeQXRequsetFailedBlock _Nonnull)fail;
/**
* Post形式提交数据
*
* @param urlString Url
* @param parameters 参数
* @param success 成功Block
* @param fail 失败Block
*/
- (NSURLSessionTask*_Nonnull)postWithUrl:(NSString * _Nonnull)urlString
parameters:(id _Nonnull)parameters
needCache:(BOOL)needCache
success:(NeQXRequsetSuccessBlock _Nonnull)success
fail:(NeQXRequsetFailedBlock _Nonnull)fail;
/**
* Put形式提交数据
*
* @param urlString Url
* @param parameters 参数
* @param success 成功Block
* @param fail 失败Block
*/
- (NSURLSessionTask*_Nullable)putWithUrl:(NSString * _Nonnull)urlString
parameters:(id _Nonnull)parameters
needCache:(BOOL)needCache
success:(NeQXRequsetSuccessBlock _Nonnull)success
fail:(NeQXRequsetFailedBlock _Nonnull)fail;
/**
* Delete形式提交数据
*
* @param urlString Url
* @param parameters 参数
* @param success 成功Block
* @param fail 失败Block
*/
- (NSURLSessionTask*_Nullable)deleteWithUrl:(NSString *_Nonnull)urlString
parameters:(id _Nonnull)parameters
needCache:(BOOL)needCache
success:(NeQXRequsetSuccessBlock _Nonnull)success
fail:(NeQXRequsetFailedBlock _Nonnull)fail;
/**
* Patch形式提交数据
*
* @param urlString Url
* @param parameters 参数
* @param success 成功Block
* @param fail 失败Block
*/
- (NSURLSessionTask*_Nullable)patchWithUrl:(NSString *_Nonnull)urlString
parameters:(id _Nonnull)parameters
needCache:(BOOL)needCache
success:(NeQXRequsetSuccessBlock _Nonnull)success
fail:(NeQXRequsetFailedBlock _Nonnull)fail;
/**
* POST上传图片
*
* @param urlString 上传地址
* @param image 图片
* @param parameters 参数
* @param success 成功Block
* @param fail 失败Block
*/
- (NSURLSessionTask*_Nullable)postUploadImageWithUrl:(NSString *_Nonnull)urlString
image:(UIImage *_Nonnull)image
parameters:(id _Nonnull)parameters
progress:(NeQXRequsetProgressBlock _Nonnull )progress
success:(NeQXRequsetSuccessBlock _Nullable )success
fail:(NeQXRequsetFailedBlock _Nonnull )fail;
/**
* 下载礼物
*
* @param url 礼物地址
*/
- (void)downloadVideoPlayerWithUrl:(NSString *_Nullable)url
completion:(void (^_Nullable)(BOOL result, NSString * _Nonnull fileName))completion;
@end