0%

AFHTTPTool/AFHTTPTool.h

Supporting Files/AFHTTPTool/AFHTTPTool.h

基于第三方库AFNetworking封装的快速HTTP访问工具。

一般[这是什么?]

1.5~[这是什么?]

请求进度回调与请求结果回调。[这是什么?]

1
2
3
4
5
6
7
8
9
10
11
12
/*
进度的block
progress: 进度参数
*/
typedef void(^_Nullable ProgressBlock)(NSProgress *_Nullable progress);

/*
返回结果
success: API执行是否成功
responseObj: 返回结果
*/
typedef void(^_Nullable RequestResultBlock)(BOOL success, id _Nullable responseObj);

[这是什么?]

AFHTTPError

1.5~

将服务端API请求各种错误封装成AFHTTPError。

-initWithError:url:

根据 NSError和服务器端 API地址来构建 AFHTTPError,通常为系统级错误。

参数:

error NSError实例 NSError 必填
url 服务器端API地址 NSString 必填

返回值:

AFHTTPError AFHTTPError实例,不可为空。

-initWithErrorCode:errorDescription:url:

根据错误码、错误描述和服务器端 API地址来构建 AFHTTPError,通常为用户操作级错误。

参数:

errorCode 错误码 NSString 必填
errorDescription 错误描述 NSString 必填
url 服务器端API地址 NSString 必填

返回值:

AFHTTPError AFHTTPError实例,不可为空。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma mark - AFHTTPError
@interface AFHTTPError : NSObject

@property (copy, nonatomic, nonnull) NSString *url;
@property (copy, nonatomic, nonnull) NSString *errorCode;
@property (copy, nonatomic, nonnull) NSString *errorDescription;
@property (copy, nonatomic, nullable) NSString *errorMessage;
@property (strong, nonatomic, nullable) id errorResponse;
@property (assign, nonatomic) BOOL isUserLevel;

- (instancetype _Nonnull)initWithError:(NSError *_Nonnull)error url:(NSString *_Nonnull)url;
- (instancetype _Nonnull)initWithErrorCode:(NSString *_Nonnull)errorCode errorDescription:(NSString *_Nonnull)errorDescription url:(NSString *_Nonnull)url;

@end

AFHTTPRequestProperties

1.5~

将服务端 API请求封装成 AFHTTPRequestProperties。

1
2
3
4
5
6
7
8
9
10
11
12
#pragma mark - AFHTTPRequestProperties
@interface AFHTTPRequestProperties : NSObject

@property (assign, nonatomic) AFHTTPMethodType methodType;
@property (copy, nonatomic, nonnull) NSString *url;
@property (strong, nonatomic, nullable) id params;
@property (assign, nonatomic) AFHTTPRequestType requestType;
@property (assign, nonatomic) BOOL authorized;
@property (strong, nonatomic) RequestResultBlock result;
@property (copy, nonatomic, nonnull) NSString *info_string;

@end

AFHTTPRetryView

1.5~

AFHTTPRetryView会在服务端 API请求需要进一步操作时显示。

1
2
3
4
5
6
7
8
9
10
11
#pragma mark - AFHTTPRetryView
@interface AFHTTPRetryView : UIView

@property (assign, nonatomic) CGFloat borderWidth;
@property (strong, nonatomic, nullable) UIColor *borderColor;
@property (assign, nonatomic) CGFloat cornerRadius;
@property (strong, nonatomic, nonnull) AFHTTPRequestProperties *requestProperties;
@property (copy, nonatomic, readonly, nonnull) NSString *retry_info;
@property (strong, nonatomic, nonnull) void(^retryBlock)(id _Nullable sender);

@end

AFHTTPTool

2.0~

+managerForRequestType:

获取 manager实例。

参数:

requestType 请求类型 AFHTTPRequestType

返回值:

AFHTTPSessionManager AFHTTPSessionManager实例,不可为空。

1
2
3
4
5
6
7
/**
获取 manager实例

@param requestType 请求类型
@return AFHTTPSessionManager实例
*/
+ (AFHTTPSessionManager *_Nonnull)managerForRequestType:(AFHTTPRequestType)requestType;

1.5~

+isClientLevel:

是否客户端级别错误(排除常见系统级别错误以外的错误),常见系统级别错误包括但不限于“未连接互联网”、“请求访问超时”、“服务器访问失败”、“服务器未正确配置”、“接口不存在”、“服务器错误”、“token不正确”、“token超时”。

参数:

http_error AFHTTPError实例 AFHTTPError 必填

返回值:

BOOL YES 客户端级别错误 NO 常见系统级别错误。

1
2
3
4
5
6
/**
是否客户端级别错误(排除常见系统级别错误以外的错误),常见系统级别错误包括但不限于“未连接互联网”、“请求访问超时”、“服务器访问失败”、“服务器未正确配置”、“接口不存在”、“服务器错误”、“token不正确”、“token超时”。
@param http_error AFHTTPError实例
@return YES 客户端级别错误 NO 常见系统级别错误
*/
+ (BOOL)isClientLevel:(AFHTTPError *_Nonnull)http_error;

+printRequestLog:

打印请求日志,依据 AppConfig中 PrintRequestLog的值。

参数:

requestProperties AFHTTPRequestProperties实例 AFHTTPRequestProperties 必填

返回值:

+printResponseLog:response:

打印响应日志,依据 AppConfig中 PrintResponseLog的值。

参数:

requestProperties AFHTTPRequestProperties实例 AFHTTPRequestProperties 必填
responseObject 响应对象实例 id 非必填

返回值:

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
打印请求日志

@param requestProperties AFHTTPRequestProperties实例
*/
+ (void)printRequestLog:(AFHTTPRequestProperties *_Nonnull)requestProperties;
/**
打印响应日志

@param requestProperties AFHTTPRequestProperties实例
@param responseObject 响应对象实例
*/
+ (void)printResponseLog:(AFHTTPRequestProperties *_Nonnull)requestProperties response:(id _Nullable)responseObject;

+GET:params:requestType:authorized:result:

通用GET请求接口。

参数:

url 访问URL NSString 必填
params 参数 id 非必填
requestType 请求类型 AFHTTPRequestType
authorized 是否经授权的,YES 需要登录 NO 无需登录 BOOL
result 返回结果 RequestResultBlock 非必填

返回值:

NSURLSessionDataTask NSURLSessionDataTask实例,不可为空。

1
2
3
4
5
6
7
8
9
10
11
/**
通用GET请求接口

@param url 访问URL
@param params 参数
@param requestType 请求类型
@param authorized 是否经授权的
@param result 返回结果
@return NSURLSessionDataTask实例
*/
+ (NSURLSessionDataTask *_Nonnull)GET:(NSString *_Nonnull)url params:(id _Nullable)params requestType:(AFHTTPRequestType)requestType authorized:(BOOL)authorized result:(RequestResultBlock)result;

+POST:params:requestType:authorized:result:

通用POST请求接口。

参数:

url 访问URL NSString 必填
params 参数 id 非必填
requestType 请求类型 AFHTTPRequestType
authorized 是否经授权的,YES 需要登录 NO 无需登录 BOOL
result 返回结果 RequestResultBlock 非必填

返回值:

NSURLSessionDataTask NSURLSessionDataTask实例,不可为空。

1
2
3
4
5
6
7
8
9
10
11
/**
通用POST请求接口

@param url 访问URL
@param params 参数
@param requestType 请求类型
@param authorized 是否经授权的
@param result 返回结果
@return NSURLSessionDataTask实例
*/
+ (NSURLSessionDataTask *_Nonnull)POST:(NSString *_Nonnull)url params:(id _Nullable)params requestType:(AFHTTPRequestType)requestType authorized:(BOOL)authorized result:(RequestResultBlock)result;

+PUT:params:requestType:authorized:result:

通用PUT请求接口。

参数:

url 访问URL NSString 必填
params 参数 id 非必填
requestType 请求类型 AFHTTPRequestType
authorized 是否经授权的,YES 需要登录 NO 无需登录 BOOL
result 返回结果 RequestResultBlock 非必填

返回值:

NSURLSessionDataTask NSURLSessionDataTask实例,不可为空。

1
2
3
4
5
6
7
8
9
10
11
/**
通用PUT请求接口

@param url 访问URL
@param params 参数
@param requestType 请求类型
@param authorized 是否经授权的
@param result 返回结果
@return NSURLSessionDataTask实例
*/
+ (NSURLSessionDataTask *_Nonnull)PUT:(NSString *_Nonnull)url params:(id _Nullable)params requestType:(AFHTTPRequestType)requestType authorized:(BOOL)authorized result:(RequestResultBlock)result;

+PATCH:params:requestType:authorized:result:

通用PATCH请求接口。

参数:

url 访问URL NSString 必填
params 参数 id 非必填
requestType 请求类型 AFHTTPRequestType
authorized 是否经授权的,YES 需要登录 NO 无需登录 BOOL
result 返回结果 RequestResultBlock 非必填

返回值:

NSURLSessionDataTask NSURLSessionDataTask实例,不可为空。

1
2
3
4
5
6
7
8
9
10
11
/**
通用PATCH请求接口

@param url 访问URL
@param params 参数
@param requestType 请求类型
@param authorized 是否经授权的
@param result 返回结果
@return NSURLSessionDataTask实例
*/
+ (NSURLSessionDataTask *_Nonnull)PATCH:(NSString *_Nonnull)url params:(id _Nullable)params requestType:(AFHTTPRequestType)requestType authorized:(BOOL)authorized result:(RequestResultBlock)result;

+DELETE:params:requestType:authorized:result:

通用DELETE请求接口。

参数:

url 访问URL NSString 必填
params 参数 id 非必填
requestType 请求类型 AFHTTPRequestType
authorized 是否经授权的,YES 需要登录 NO 无需登录 BOOL
result 返回结果 RequestResultBlock 非必填

返回值:

NSURLSessionDataTask NSURLSessionDataTask实例,不可为空。

1
2
3
4
5
6
7
8
9
10
11
/**
通用DELETE请求接口

@param url 访问URL
@param params 参数
@param requestType 请求类型
@param authorized 是否经授权的
@param result 返回结果
@return NSURLSessionDataTask实例
*/
+ (NSURLSessionDataTask *_Nonnull)DELETE:(NSString *_Nonnull)url params:(id _Nullable)params requestType:(AFHTTPRequestType)requestType authorized:(BOOL)authorized result:(RequestResultBlock)result;

1.5

+managerForRequestType:authorized:

获取 manager实例。

参数:

requestType 请求类型 AFHTTPRequestType
authorized 是否经授权的,YES 需要登录 NO 无需登录 BOOL

返回值:

AFHTTPSessionManager AFHTTPSessionManager实例,不可为空。

1
2
3
4
5
6
7
8
/**
获取 manager实例

@param requestType 请求类型
@param authorized 是否经授权的
@return AFHTTPSessionManager实例
*/
+ (AFHTTPSessionManager *_Nonnull)managerForRequestType:(AFHTTPRequestType)requestType authorized:(BOOL)authorized;

相关

更新内容

获取 manager实例时不再要求授权,改由各请求处理。