AFNetworking - 向 REST 发送 HTTP POST,发送带有 Base64string 图像的 JSON
Posted
技术标签:
【中文标题】AFNetworking - 向 REST 发送 HTTP POST,发送带有 Base64string 图像的 JSON【英文标题】:AFNetworking - Make an HTTP POST to REST, sending a JSON with Base64string image 【发布时间】:2017-09-26 15:09:17 【问题描述】:我正在尝试使用 http POST 和 AFNetworking 在其他一些字符串中发送 base64 编码图像。我正在尝试将参数作为 NSDictionary 发送:
NSMutableDictionary *info = [NSMutableDictionary dictionary];
[info setValue:filedata forKey:@"filedata"];
[info setValue:comments forKey:@"comments"];
[info setValue:username forKey:@"username"];
[info setValue:@"jpg" forKey:@"filetype"];
[info setValue:filename forKey:@"filename"];
并使用 AFNetworking 发布:
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[manager POST:@"https://myurl.com/fileupload" parameters:info progress:nil success:^(NSURLSessionTask *task, id responseObject)
NSLog(@"JSON: %@", responseObject);
failure:^(NSURLSessionTask *operation, NSError *error)
NSLog(@"Error: %@", error);
];
但是,我不确定此时还能做什么。我错过了什么?谢谢
【问题讨论】:
【参考方案1】:你可以使用下面的例子
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager POST:@"https://myurl.com/fileupload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
[formData appendPartWithFileData:imageData
name:@"key name for the image"
fileName:photoName mimeType:@"image/jpeg"];
success:^(NSURLSessionDataTask *task, id responseObject)
NSLog(@"Response: %@", responseObject);
failure:^(NSURLSessionDataTask *task, NSError *error)
NSLog(@"Error: %@", error);
];
【讨论】:
谢谢,但是我需要上传所有值。("username=%@&filename=%@&filetype=jpg&filedata=%@&comments=%@")
如何包含这些参数?
查看这个例子***.com/questions/24747809/…以上是关于AFNetworking - 向 REST 发送 HTTP POST,发送带有 Base64string 图像的 JSON的主要内容,如果未能解决你的问题,请参考以下文章
使用 AFNetworking 将 .zip 文件上传到 REST 服务器失败
无法通过 HTTPClient 向 REST 发送 post 请求