iOS AFN form-data表单 请求
2023-04-12 本文已影响0人
小锤子_
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//1、设置接收数据类型
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"multipart/form-data" , @"application/json", @"text/html", @"image/jpeg", @"image/png", @"application/octet-stream", @"text/json", nil];
//2.设置form-data表单提交格式
[manager.requestSerializer setValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];
//3.header添加基本信息--根据自己的app需要设置
[manager.requestSerializer setValue:@"iOS" forHTTPHeaderField:@"Device"];
//发起请求
[manager POST:urlMessage parameters:parameters headers:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
for (NSString *key in parameters.allKeys) {
// 循环拿到所有参数进行拼接
NSString * searchStr = [parameters[key] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[formData appendPartWithFormData:[searchStr dataUsingEncoding:NSUTF8StringEncoding] name:key];
//如果有图片或者其他类型的数据,使用下面的函数:
// [formData appendPartWithFileURL:@"url" name:@"参数名称" fileName:@"文件名称" mimeType:@"文件类型" error:nil];
// [formData appendPartWithFileData:data name:@"参数名称" fileName:@"文件名称" mimeType:@"文件类型"];
}
} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];