From aa89c0261dafe07dd8386dab584ba89c95cafbf6 Mon Sep 17 00:00:00 2001 From: liujl Date: Mon, 22 Aug 2016 10:09:50 +0800 Subject: [PATCH] ADD: allowsCellularAccess property Change-Id: Ief2f0a07f9bfed96d2bb063fb6b2bbf623890a9b --- YTKNetwork/YTKBaseRequest.h | 5 ++++- YTKNetwork/YTKBaseRequest.m | 4 ++++ YTKNetwork/YTKNetworkAgent.m | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/YTKNetwork/YTKBaseRequest.h b/YTKNetwork/YTKBaseRequest.h index ec3bd93..c3a48bd 100644 --- a/YTKNetwork/YTKBaseRequest.h +++ b/YTKNetwork/YTKBaseRequest.h @@ -299,12 +299,15 @@ typedef void(^YTKRequestCompletionBlock)(__kindof YTKBaseRequest *request); - (nullable NSDictionary *)requestHeaderFieldValueDictionary; /// Use this to build custom request. If this method return non-nil value, `requestUrl`, `requestTimeoutInterval`, -/// `requestArgument`, `requestMethod` and `requestSerializerType` will all be ignored. +/// `requestArgument`, `allowsCellularAccess`, `requestMethod` and `requestSerializerType` will all be ignored. - (nullable NSURLRequest *)buildCustomUrlRequest; /// Should use CDN when sending request. - (BOOL)useCDN; +/// Whether the request is allowed to use the cellular radio (if present). Default is YES. +- (BOOL)allowsCellularAccess; + /// The validator will be used to test if `responseJSONObject` is correctly formed. - (nullable id)jsonValidator; diff --git a/YTKNetwork/YTKBaseRequest.m b/YTKNetwork/YTKBaseRequest.m index 8585f18..1ed9154 100644 --- a/YTKNetwork/YTKBaseRequest.m +++ b/YTKNetwork/YTKBaseRequest.m @@ -187,6 +187,10 @@ - (BOOL)useCDN { return NO; } +- (BOOL)allowsCellularAccess { + return YES; +} + - (id)jsonValidator { return nil; } diff --git a/YTKNetwork/YTKNetworkAgent.m b/YTKNetwork/YTKNetworkAgent.m index e1a323f..da448a3 100644 --- a/YTKNetwork/YTKNetworkAgent.m +++ b/YTKNetwork/YTKNetworkAgent.m @@ -146,6 +146,7 @@ - (void)addRequest:(YTKBaseRequest *)request { } requestSerializer.timeoutInterval = [request requestTimeoutInterval]; + requestSerializer.allowsCellularAccess = [request allowsCellularAccess]; // If api needs server username and password NSArray *authorizationHeaderFieldArray = [request requestAuthorizationHeaderFieldArray]; @@ -182,6 +183,7 @@ - (void)addRequest:(YTKBaseRequest *)request { NSString *filteredUrl = [YTKNetworkPrivate urlStringWithOriginUrlString:url appendParameters:param]; NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:filteredUrl]]; urlRequest.timeoutInterval = [request requestTimeoutInterval]; + urlRequest.allowsCellularAccess = [request allowsCellularAccess]; NSString *downloadTargetPath; BOOL isDirectory; @@ -237,6 +239,7 @@ - (void)addRequest:(YTKBaseRequest *)request { NSError *serializationError = nil; NSMutableURLRequest *urlRequest = [requestSerializer multipartFormRequestWithMethod:@"POST" URLString:url parameters:param constructingBodyWithBlock:constructingBlock error:&serializationError]; urlRequest.timeoutInterval = [request requestTimeoutInterval]; + urlRequest.allowsCellularAccess = [request allowsCellularAccess]; if (serializationError) { dispatch_async(_manager.completionQueue ?: dispatch_get_main_queue(), ^{