Skip to content

Commit 5f822a2

Browse files
committed
add willSendRequest
1 parent 63a8ea0 commit 5f822a2

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

SCNetworkKit/Classes/NetworkService/SCNetworkService.h

+2
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,7 @@ FOUNDATION_EXPORT NSString *const SCNetworkKitErrorDomain;
2020

2121
///开始请求;
2222
- (void)startRequest:(__kindof SCNetworkBasicRequest *)request;
23+
///将要发送请求,可以在发送前修改这个 request, 返回 NO 将取消此次请求
24+
- (void)willSendRequest:(BOOL(^)(__kindof SCNetworkBasicRequest *request))block;
2325

2426
@end

SCNetworkKit/Classes/NetworkService/SCNetworkService.m

+14
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ @interface SCNetworkService ()<NSURLSessionDelegate,NSURLSessionTaskDelegate,NSU
2323
@property (nonatomic, strong) dispatch_queue_t taskSynzQueue;
2424
@property (nonatomic, strong) NSMutableDictionary *taskRequestMap;
2525
@property (nonatomic, strong) NSURLSession *session;
26+
@property (nonatomic, copy) BOOL (^willSendRequestBlcok)(__kindof SCNetworkBasicRequest *);
2627

2728
@end
2829

@@ -86,8 +87,21 @@ - (instancetype)initWithSessionConfiguration:(NSURLSessionConfiguration *)config
8687
return self;
8788
}
8889

90+
- (void)willSendRequest:(BOOL (^)(__kindof SCNetworkBasicRequest *))block
91+
{
92+
self.willSendRequestBlcok = block;
93+
}
94+
8995
- (void)startRequest:(__kindof SCNetworkBasicRequest *)request
9096
{
97+
if (self.willSendRequestBlcok) {
98+
BOOL send = self.willSendRequestBlcok(request);
99+
if (!send) {
100+
[request cancel];
101+
return;
102+
}
103+
}
104+
91105
NSURLRequest * urlRequest = request.urlRequest;
92106
if(!request || !urlRequest) {
93107
NSAssert((request && urlRequest),

SCNetworkKit/Classes/Request/SCNetworkRequest.m

+12-10
Original file line numberDiff line numberDiff line change
@@ -289,19 +289,21 @@ - (NSMutableURLRequest *)_makeURLRequest:(NSString *)urlString
289289
query:(NSDictionary *)parameters
290290
{
291291
NSAssert(urlString, @"makeURLRequest:url不能为空");
292-
NSString *queryStr = [SCNUtil makeUrlEncodeingString:parameters];
293-
if (queryStr.length > 0) {
294-
if (NSNotFound != [urlString rangeOfString:@"?"].location) {
295-
NSString *join = @"&";
296-
if ([urlString hasSuffix:@"&"]) {
297-
join = @"";
292+
if (parameters) {
293+
NSString *queryStr = [SCNUtil makeUrlEncodeingString:parameters];
294+
if (queryStr.length > 0) {
295+
if (NSNotFound != [urlString rangeOfString:@"?"].location) {
296+
NSString *join = @"&";
297+
if ([urlString hasSuffix:@"&"]) {
298+
join = @"";
299+
}
300+
urlString = [NSString stringWithFormat:@"%@%@%@", urlString,join,queryStr];
301+
} else {
302+
urlString = [NSString stringWithFormat:@"%@?%@", urlString,queryStr];
298303
}
299-
urlString = [NSString stringWithFormat:@"%@%@%@", urlString,join,queryStr];
300-
} else {
301-
urlString = [NSString stringWithFormat:@"%@?%@", urlString,queryStr];
302304
}
303305
}
304-
306+
305307
NSURL *url = [NSURL URLWithString:urlString];
306308

307309
NSAssert(url, @"makeURLRequest:url不合法");

0 commit comments

Comments
 (0)