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.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..04344cb 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]; @@ -196,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);