xn_base_Client_AF.h
3.66 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
//
// 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定义-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;
}
// 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 -添加后台请求的tag
/**
* @author qianjun
*
* @brief 添加后台请求的tag
*
* @param tags tag数组
*/
-(void)f_addBackgroundTaskTags:(NSArray *)tags;
-(void)f_sendRequest:(BaseRequest *)request isPost:(BOOL)isPost completion:(COMPLETIONBLOCK)block;
@end