From a5960320330fc51cf1fe55c770310e4b94237dc2 Mon Sep 17 00:00:00 2001 From: qiuwei Date: Fri, 4 Jan 2019 14:05:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E7=9A=84=E8=AF=B7=E6=B1=82=E5=A4=B4=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SUIMVVMKit/SUIMVVMKit/SMKAction.h | 8 ++++++++ SUIMVVMKit/SUIMVVMKit/SMKAction.m | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/SUIMVVMKit/SUIMVVMKit/SMKAction.h b/SUIMVVMKit/SUIMVVMKit/SMKAction.h index 7e2ba5e..a1ed4a7 100644 --- a/SUIMVVMKit/SUIMVVMKit/SMKAction.h +++ b/SUIMVVMKit/SUIMVVMKit/SMKAction.h @@ -73,6 +73,14 @@ typedef void (^progressBlock)(NSProgress * progress); */ - (void)configScheme:(NSString *)scheme host:(NSString *)host; +/** + * 配置全局的请求头 + * + * @param value 值 + * @param field 字段 + */ +- (void)configValue:(nonnull NSString *)value forHTTPHeaderField:(nonnull NSString *)field; + /** * 发送请求(在外部配置request) */ diff --git a/SUIMVVMKit/SUIMVVMKit/SMKAction.m b/SUIMVVMKit/SUIMVVMKit/SMKAction.m index 6eda233..9ebe881 100644 --- a/SUIMVVMKit/SUIMVVMKit/SMKAction.m +++ b/SUIMVVMKit/SUIMVVMKit/SMKAction.m @@ -70,6 +70,11 @@ - (void)configScheme:(NSString *)scheme host:(NSString *)host { self.host = host; } +- (void)configValue:(nonnull NSString *)value forHTTPHeaderField:(nonnull NSString *)field +{ + [self.sessionManager.requestSerializer setValue:value forHTTPHeaderField:field]; +} + - (NSURLSessionTask *)sendRequest:(id)request progress:(progressBlock)progress success:(successBlock)success failure:(failureBlock)failure { if ([request respondsToSelector:@selector(smk_requestConfigures)]) { [request smk_requestConfigures]; From 4ea3575f63f50c25d63547d18f211a118f51eafa Mon Sep 17 00:00:00 2001 From: qiuwei Date: Fri, 4 Jan 2019 14:46:10 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=90=8C=E6=97=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=A4=9A=E4=B8=AA=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SUIMVVMKit/SUIMVVMKit/NSObject+SMKRequest.h | 4 ++++ SUIMVVMKit/SUIMVVMKit/NSObject+SMKRequest.m | 11 +++++++++++ SUIMVVMKit/SUIMVVMKit/SMKAction.m | 12 +++++++++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/SUIMVVMKit/SUIMVVMKit/NSObject+SMKRequest.h b/SUIMVVMKit/SUIMVVMKit/NSObject+SMKRequest.h index ea5d86a..254aaac 100644 --- a/SUIMVVMKit/SUIMVVMKit/NSObject+SMKRequest.h +++ b/SUIMVVMKit/SUIMVVMKit/NSObject+SMKRequest.h @@ -60,5 +60,9 @@ typedef enum : NSUInteger { */ @property (nonatomic, retain, nonnull) SMKRequestFileConfig *smk_fileConfig; +/** + * fileConfigs(如果fileConfigs有值,不会处理fileConfig的值) + */ +@property (nonatomic, retain, nonnull) NSArray *smk_fileConfigs; @end diff --git a/SUIMVVMKit/SUIMVVMKit/NSObject+SMKRequest.m b/SUIMVVMKit/SUIMVVMKit/NSObject+SMKRequest.m index a9b74e6..b01550b 100644 --- a/SUIMVVMKit/SUIMVVMKit/NSObject+SMKRequest.m +++ b/SUIMVVMKit/SUIMVVMKit/NSObject+SMKRequest.m @@ -81,5 +81,16 @@ - (void)setSmk_fileConfig:(SMKRequestFileConfig *)smk_fileConfig { objc_setAssociatedObject(self, @selector(smk_fileConfig), smk_fileConfig, OBJC_ASSOCIATION_RETAIN_NONATOMIC); } +/** + * fileConfigs + */ +- (NSArray *)smk_fileConfigs +{ + return objc_getAssociatedObject(self, @selector(smk_fileConfigs)); +} + +- (void)setSmk_fileConfigs:(NSArray *)smk_fileConfigs { + objc_setAssociatedObject(self, @selector(smk_fileConfigs), smk_fileConfigs, OBJC_ASSOCIATION_RETAIN_NONATOMIC); +} @end diff --git a/SUIMVVMKit/SUIMVVMKit/SMKAction.m b/SUIMVVMKit/SUIMVVMKit/SMKAction.m index 9ebe881..04344cb 100644 --- a/SUIMVVMKit/SUIMVVMKit/SMKAction.m +++ b/SUIMVVMKit/SUIMVVMKit/SMKAction.m @@ -201,7 +201,17 @@ - (NSURLSessionDataTask *)upload:(id)request progress:(progressBlock)progress su NSObject *requestObject = (NSObject *)request; return [self.sessionManager POST:urlPath parameters:parameters constructingBodyWithBlock:^(id _Nonnull formData) { - [formData appendPartWithFileData:requestObject.smk_fileConfig.fileData name:requestObject.smk_fileConfig.name fileName:requestObject.smk_fileConfig.fileName mimeType:requestObject.smk_fileConfig.mimeType]; + + if (requestObject.smk_fileConfigs.count) { + for (SMKRequestFileConfig *file in requestObject.smk_fileConfigs) { + [formData appendPartWithFileData:file.fileData name:file.name fileName:file.fileName mimeType:file.mimeType]; + } + } + else + { + [formData appendPartWithFileData:requestObject.smk_fileConfig.fileData name:requestObject.smk_fileConfig.name fileName:requestObject.smk_fileConfig.fileName mimeType:requestObject.smk_fileConfig.mimeType]; + } + } progress:^(NSProgress * _Nonnull uploadProgress) { if (progress) { if (uploadProgress) progress(uploadProgress);