+ (void)PUT:(NSString *)URLString isNeedToken:(BOOL)isNeedToken data:(NSData *)data parameters:(NSDictionary *)parameters progress:(NetworkingProgress)progress success:(NetworkingSuccess)success failure:(NetworkingFailure)failure {
TJMTokenModel *tokenModel = [TJMSandBoxManager getTokenModel];
if (tokenModel) {
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSMutableURLRequest *request = [[AFJSONRequestSerializer serializer] multipartFormRequestWithMethod:@"PUT" URLString:URLString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
if (data) {
[formData appendPartWithFileData:data name:@"file" fileName:@"data.txt" mimeType:@"multipart/form-data"];
}
} error:nil];
if (isNeedToken) {
[request setValue:tokenModel.realToken forHTTPHeaderField:@"Authorization"];
} else {
[request setValue:nil forHTTPHeaderField:@"Authorization"];
}
// [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
if (parameters && parameters.count > 0) {
[request setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:NSJSONWritingPrettyPrinted error:nil]];
}
__block NSURLSessionDataTask *task;
task = [manager uploadTaskWithStreamedRequest:request progress:^(NSProgress * _Nonnull uploadProgress) {
if (progress) {
progress(uploadProgress);
}
} completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (!error) {
[self requestSuccessWithSessionDataTask:task responseObject:responseObject success:success failure:failure];
} else {
[self requestFailureWithSessionDataTask:task error:error failure:failure];
}
}];
[task resume];
}
}
网友评论