iOS AFNetWorking PUT 方式上传图片

+ (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  _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];
    }
}

你可能感兴趣的:(iOS AFNetWorking PUT 方式上传图片)