BBASMRequestManager.h
4.76 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
//
// BBASMRequestManager.h
// BBAMNP
//
// Created by baidu on 2019/11/19.
// Copyright © 2019 Baidu. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <Reachability/Reachability.h>
#import <BBANetwork/BBANetwork.h>
#import <BBAAPIRequest/BBAAPIRequest.h>
#import "BBASMNetworkUtilProtocol.h"
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, BBASMNetworkStatus) {
BBASMNetworkNotReachable = 0,
BBASMNetworkReachableViaWWAN,
BBASMNetworkReachableViaWiFi
};
/// 网络请求任务
@interface BBASMRequestTask : NSObject
/// 取消网络请求任务(不一定能取消成功)
- (void)cancel;
@end
@interface BBASMRequestManager : NSObject
// 单例获取
+ (instancetype)sharedInstance;
/**
使用GET方法发起请求
@param reqInfo 请求信息实体类
@param completeBlock 请求完成回调
@param failBlock 请求失败回调
*/
+ (BBASMRequestTask *)getWithInfo:(BBASMCommonRequestInfo *)reqInfo
completion:(BBASMRequestComplete)completeBlock
failure:(BBASMRequestFail)failBlock;
/**
使用POST方法发起请求
@param reqInfo 请求信息实体类
@param completeBlock 请求完成回调
@param failBlock 请求失败回调
*/
+ ( BBASMRequestTask *)postWithInfo:(BBASMCommonRequestInfo *)reqInfo
completion:(BBASMRequestComplete)completeBlock
failure:(BBASMRequestFail)failBlock;
/**
使用HEAD方法发起请求
@param reqInfo 请求信息实体类
@param completeBlock 请求完成回调
@param failBlock 请求失败回调
*/
+ (BBASMRequestTask *)headWithInfo:(BBASMCommonRequestInfo *)reqInfo
completion:(BBASMRequestComplete)completeBlock
failure:(BBASMRequestFail)failBlock;
/**
使用PUT方法发起请求
@param reqInfo 请求信息实体类
@param completeBlock 请求完成回调
@param failBlock 请求失败回调
*/
+ (BBASMRequestTask *)putWithInfo:(BBASMCommonRequestInfo *)reqInfo
completion:(BBASMRequestComplete)completeBlock
failure:(BBASMRequestFail)failBlock;
/**
使用DELETE方法发起请求
@param reqInfo 请求信息实体类
@param completeBlock 请求完成回调
@param failBlock 请求失败回调
*/
+ (BBASMRequestTask *)deleteWithInfo:(BBASMCommonRequestInfo *)reqInfo
completion:(BBASMRequestComplete)completeBlock
failure:(BBASMRequestFail)failBlock;
/**
使用PATCH方法发起请求
@param reqInfo 请求信息实体类
@param completeBlock 请求完成回调
@param failBlock 请求失败回调
*/
+ (BBASMRequestTask *)patchWithInfo:(BBASMCommonRequestInfo *)reqInfo
completion:(BBASMRequestComplete)completeBlock
failure:(BBASMRequestFail)failBlock;
/**
发起请求基本方法,请求方法可在reqInfo中设置
@param reqInfo 请求信息实体类
@param completeBlock 请求完成回调
@param failBlock 请求失败回调
*/
+ (BBASMRequestTask *)requestWithInfo:(BBASMCommonRequestInfo *)reqInfo
completion:(BBASMRequestComplete)completeBlock
failure:(BBASMRequestFail)failBlock;
/**
在指定队列中发起请求
@param reqInfo 请求信息实体类
@param operationQueue 发起请求的队列
@param completeBlock 请求完成回调
@param failBlock 请求失败回调
*/
+ (BBASMRequestTask *)requestWithInfo:(BBASMCommonRequestInfo *)reqInfo
intoQueue:(NSOperationQueue *)operationQueue
completion:(BBASMRequestComplete)completeBlock
failure:(BBASMRequestFail)failBlock;
/**
获取网络状态
@return 网络状态
BBASMNetworkNotReachable 无网
BBASMNetworkReachableViaWWAN 手机自带网络
BBASMNetworkReachableViaWiFi WIFI网络
*/
+ (BBASMNetworkStatus)currentReachabilityStatus;
/**
* @brief 在独立框架网络请求队列中发起请求(除了request端能力之外的请求)
* @param request 要发起的请求 (当前不支持上传和下载类型的请求)
*/
+ (void)executeRequestUseFrameworkQueue:(BBANormalAPIRequest * _Nonnull)request;
/**
* @brief 在独立业务网络请求队列中发起请求,request端能力
* @param request 要发起的请求 (当前不支持上传和下载类型的请求)
*/
+ (void)executeRequestUseBusinessQueue:(BBANormalAPIRequest * _Nonnull)request;
/// @brief 根据reqInfo的requestClassType构成BBANormalAPIRequest、BBASMBdtlsRequest请求类,默认为BBANormalAPIRequest
/// @param reqInfo 请求信息实体类
+ (BBANormalAPIRequest *)generateRequestWithInfo:(BBASMCommonRequestInfo *)reqInfo;
@end
NS_ASSUME_NONNULL_END