xn_base_Client_AF.h
4.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
//
// xn_base_Client_AF.h
// xn_base_ios
//
// Created by 钱鋆 on 15/12/16.
// Copyright © 2015年 xn. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "BaseResponse.h"
#import "BaseRequest.h"
#import "AFNetworking.h"
#import "AFNetworkReachabilityManager.h"
// 默认的出错信息
static NSString * const kDefaultMsg = @"系统后台接口出错";
// 初始化出错信息用
static NSString * const kNoError = @"NoError!";
// 回调通知名常量
#define kResponseNotiName @"kResponseNoti"
// 回调通知key定义-request
#define kResponseNotiKey_baseRequest @"baseRequest"
// 回调通知key定义-response的tag
#define kResponseNotiKey_tag @"tag"
// 回调通知key定义-response返回的baseResponse
#define kResponseNotiKey_baseResponse @"baseResponse"
// 回调通知key定义-response返回的error
#define kResponseNotiKey_error @"error"
#ifdef DEBUG
// 是否显示api的系统错误
#define kShowSysErr 1
#else
#define kShowSysErr 0
#endif
#pragma mark -后台请求任务协议
@protocol backgourndTaskDelegate <NSObject>
@required
// 后台请求的回调
-(void)l_backgourndTask:(NSDictionary *)userInfo;
@end
#pragma mark -前台任务协议
@protocol foregroundTaskDelegate <NSObject>
@required
// 前台请求的回调
-(void)l_foregroundTask:(NSDictionary *)userInfo;
@end
typedef void(^COMPLETIONBLOCK)(NSDictionary *_dict);
@interface xn_base_Client_AF : NSObject{
// 后台url
NSString *_str_url;
// 后台appKey
NSString *_str_key;
// 后台appSecret
NSString *_str_secret;
// 任务最大并发数
NSInteger _integer_maxTask;
// 出错信息
NSString *_str_err;
// 后台任务的tag数组
NSMutableArray *_muArr_backgroundTaskTags;
BOOL isNetError;
}
// Delegate
@property (weak,nonatomic)id<backgourndTaskDelegate> backgourndTaskDelegate;
@property (weak,nonatomic)id<foregroundTaskDelegate> foregroundTaskDelegate;
/**
* @author qianjun
*
* @brief AFHTTPSessionManager
*/
@property(atomic,retain)AFHTTPSessionManager *manager;
#pragma mark -创建单例
/**
* @author qianjun
*
* @brief 创建单例
*
* @return self
*/
+ (instancetype)sharedInstance;
#pragma mark -配置后台连接参数
/**
* @author qianjun
*
* @brief 配置后台连接信息
*
* @param urlString 连接地址
* @param appKey key
* @param appSecret secret
* @param maxTask 任务最大并发操作数
*/
-(void)f_configByUrl:(NSString *)urlString appKey:(NSString *)appKey appSecret:(NSString *)appSecret maxTask:(NSInteger)maxTask;
#pragma mark - 以异步方式发送请求(AF没有同步方法)
/**
* @author qianjun
*
* @brief 以异步方式发送请求(AF没有同步方法)
*
* @param request 发送的请求对象
* @param isPost 是否是Post请求
* @param tag 请求的下标(用于异步完成后的通知判定)
*/
-(void)f_sendRequest:(BaseRequest *)request isPost:(BOOL)isPost tag:(NSInteger)tag;
#pragma mark -取消所有任务
/**
* @author qianjun
*
* @brief 取消所有任务
*/
-(void)f_cancelAllTask;
#pragma mark -挂起当前所有任务
/**
* @author qianjun
*
* @brief 挂起当前所有任务
*/
-(void)f_suspendAllTask;
#pragma mark -返回当前剩余任务数
/**
* @author qianjun
*
* @brief 返回当前剩余任务数
*/
-(NSInteger)f_getCurrentTaskCount;
#pragma mark -执行当前剩余任务(一般是用在挂起后)
/**
* @author qianjun
*
* @brief 执行当前剩余任务(一般是用在挂起后)
*/
-(void)f_resumeAllTask;
#pragma mark - 检测当前的网络状态
/**
* @brief 检测当前的网络状态
*
* @return BOOL 是否有网络可用
*/
- (BOOL)f_networkIsReachable;
#pragma mark - 获取当前网络状态
/**
获取当前网络状态
@return 网络状态枚举
*/
-(AFNetworkReachabilityStatus)f_networkStatus;
#pragma mark - 开始网络状态监测
/**
开始网络状态监测
*/
- (void)f_networkStartMonitoring;
#pragma mark - 结束网络状态监测
/**
结束网络状态监测
*/
- (void)f_networkStopMonitoring;
#pragma mark -添加后台请求的tag
/**
* @author qianjun
*
* @brief 添加后台请求的tag
*
* @param tags tag数组
*/
-(void)f_addBackgroundTaskTags:(NSArray *)tags;
-(void)f_sendRequest:(BaseRequest *)request isPost:(BOOL)isPost completion:(COMPLETIONBLOCK)block;
+ (NSDictionary *)wifiInfo;
@end