GiGaMaskTime/GIGA/Common/GiGaNetTool/GiGaBaseAPiRequest.h

141 lines
3.7 KiB
Objective-C

//
// GiGaBaseAPiRequest.h
// GIGA
//
// Created by lianxiang on 2018/8/29.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "GiGaAPIResult.h"
typedef NS_ENUM(NSInteger, GIGARequestStatus) {
NotAvailable = 1, //不可用
RequestSuccess = 2, //请求成功
RequestFailed = 4, //请求失败
RequestLocalData = 8, //本地请求
RequestNoMoreContent = 16, //没有更多数据
};
typedef NS_ENUM(NSInteger, GIGARequestNetStatus) {
NetStatusWifi = 1,
NetStatusWWAN = 2,
NetStatusUnKown= 4,//不可用
};
typedef NS_ENUM(NSInteger, RequestMethod) {
RequestPostMethod = 1, //post 请求
RequestGetMethod = 2, //get 请求
RequestPutMethod = 3, //put 请求
RequestDelMethod = 4, //del 请求
};
typedef NS_ENUM(NSInteger ,GiGAErrorCode){
GiGAErrorCode_SUCCESS = 0,//成功
GiGAErrorCode_USER_EXIST = 500,//用户已存在
};
@class GiGaBaseAPiRequest;
typedef void (^GiGaRequestResultBlock)(GiGaAPIResult *result);
@interface GiGaBaseAPiRequest : NSObject
#pragma mark - porperty
@property (nonatomic,assign) GIGARequestNetStatus statu;
//@property (nonatomic, copy) GIGARequestSuccessBlock successBlock;
//@property (nonatomic, copy) GIGARequetFailBlock failBlock;
@property (nonatomic,copy) GiGaRequestResultBlock blockresult;
/** 请求类型 */
@property (nonatomic, assign) RequestMethod requestMethod;
/** 请求超时时间 */
@property (nonatomic, readonly) NSTimeInterval timeout;
/** 服务器地址 */
@property (nonatomic, readonly) NSString *serviceUrl;
/** 请求路径 */
@property (nonatomic, copy) NSString *fullUrl;
/** 请求参数 */
@property (nonatomic, strong) NSMutableDictionary *params;
/**
* 请求得到的全部数据
*/
@property (strong, nonatomic) NSDictionary *resultDict;
@property (strong, nonatomic) NSDictionary *responseHeaderFields;
@property (nonatomic, assign) BOOL needToken; // 是否需要带上token
/**
* 检查网络
*/
- (void)checkNetwork;
/**
发起请求
@param result 。
*/
- (void)requstDataWithResult:(GiGaRequestResultBlock)result;
/**
* 发起本地存储数据请求
*
* @param success 成功block
* @param failure 失败block
*/
//- (void)loadLocalDataAsyncWithSuccess:(GIGARequestSuccessBlock)success
// failure:(GIGARequetFailBlock)failure;
/**
* 分析错误信息
*
* @param requestDict 服务器返回数据
* @param error error信息
*/
- (void)analyseResponseInfo:(NSDictionary *)requestDict error:(NSError *)error;
- (void)analyseResponseInfo:(NSDictionary *)requestDict
headerFileds:(NSDictionary *)headerFields
error:(NSError *)error;
/**
API convenience constructor
@param path request path
@param method method
@param parms parms
@return model
*/
+ (instancetype)initWithRequestPath:(NSString *)path
method:(RequestMethod)method
parms:(NSDictionary *)parms;
+ (instancetype)initWithRequestAbsoluteURLString:(NSString *)absoluteString
method:(RequestMethod)method
parms:(NSDictionary *)parms;
//+ (instancetype)uploadImage:(NSString *)url
// imgData:(NSData *)imgData
// parms:(NSDictionary *)parms
// success:(GIGARequestSuccessBlock)success
// failure:(GIGARequetFailBlock)failure;
//+ (NSString *)resizeImageUrl:(NSString *)originImageUrl
// size:(CGSize)size;
+(void)userTokenTimeOutGologinFromVC:(UIViewController *)vc;
@end