使用 Afnetworking 发布没有图像的数据
Posted
技术标签:
【中文标题】使用 Afnetworking 发布没有图像的数据【英文标题】:Post data without image using Afnetworking 【发布时间】:2014-09-21 04:58:55 【问题描述】:我想上传用户信息到服务器。它包含用户头像和用户配置文件数据。现在的问题是用户不总是上传头像,所以如果用户不上传,我想过滤图像,所以有人可以帮我吗?
现在我正在使用此代码上传图片,它工作正常,但即使用户不上传图片,我也想上传
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:BASE_URL]];
NSData *imageData = UIImagePNGRepresentation(image);
[manager POST:url parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
[formData appendPartWithFileData:imageData name:@"file" fileName:@"image.png" mimeType:@"image/png"];
success:^(AFHTTPRequestOperation *operation, id responseObject)
NSLog(@"Success %@", responseObject);
[Util showAlertDialog: NSLocalizedString(@"Success", nil):NSLocalizedString(@"Upload Successful", nil)];
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"Failure %@, %@", error, operation.responseString);
[ Util showAlertDialog: NSLocalizedString(@"Failed", nil):NSLocalizedString(@"Upload Failed, Please try again", nil)];
];
【问题讨论】:
【参考方案1】:我自己通过发送空的 NSData 解决了这个问题
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:BASE_URL]];
NSData *imageData;
CGImageRef cgref = [image CGImage];
CIImage *cim = [image CIImage];
if (cim == nil && cgref == NULL)
imageData = [[NSData alloc] init];
else
imageData = UIImagePNGRepresentation(image);
[manager POST:url parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
[formData appendPartWithFileData:imageData name:@"file" fileName:@"image.png" mimeType:@"image/png"];
success:^(AFHTTPRequestOperation *operation, id responseObject)
NSLog(@"Success %@", responseObject);
[MBProgressHUD hideHUDForView:view animated:YES];
[Util showAlertDialog: NSLocalizedString(@"Success", nil):NSLocalizedString(@"Upload Successful", nil)];
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"Failure %@, %@", error, operation.responseString);
[MBProgressHUD hideHUDForView:view animated:YES];
[ Util showAlertDialog: NSLocalizedString(@"Failed", nil):NSLocalizedString(@"Upload Failed, Please try again", nil)];
];
【讨论】:
以上是关于使用 Afnetworking 发布没有图像的数据的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法先加载文本字符串,然后使用 AFNetworking 加载图像?
带有数据和图像的 AFNetworking 3.x 发布请求
如何直接从 iPad 应用程序使用 AFNetworking 上传图像