Files
featherVoice/QXLive/Network/QXRequest.h

161 lines
5.5 KiB
C
Raw Normal View History

2025-08-08 10:49:36 +08:00
//
// 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