【发布时间】:2013-05-22 12:43:10
【问题描述】:
我正在更新使用ASIHTTPRequest 和AFNetworking 的旧应用程序代码。就我而言,我正在向API 发送一组数据,这些数据是不同的类型:图像和其他。
这是我目前采用的代码,实现 API 客户端,请求共享实例,准备 params 字典并将其发送到远程 API:
NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params setValue:@"Some value" forKey:aKey];
[[APIClient sharedInstance]
postPath:@"/post"
parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
//some logic
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//handle error
}];
当我想将图像添加到params 字典时会发生什么情况?
使用ASIHTTPRequest,我曾经做过以下事情:
NSData *imgData = UIImagePNGRepresentation(anImage);
NSString *newStr = [anImageName stringByReplacingOccurrencesOfString:@"/"
withString:@"_"];
[request addData:imgData
withFileName:[NSString stringWithFormat:@"%@.png",newStr]
andContentType:@"image/png"
forKey:anOtherKey];
我深入研究了AFNetworking 文档,发现他们将图像附加到NSMutableRequest 中,如下所示:
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"avatar.jpg"], 0.5);
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
[formData appendPartWithFileData:imageData name:@"avatar" fileName:@"avatar.jpg" mimeType:@"image/jpeg"];
}];
我应该如何以一种巧妙的方式将它们混合在一起,以将我的图像数据集成到APIClient 请求中?提前谢谢。
【问题讨论】:
标签: ios afnetworking