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=%@&amp;filename=%@&amp;filetype=jpg&amp;filedata=%@&amp;comments=%@") 如何包含这些参数? 查看这个例子***.com/questions/24747809/…

以上是关于AFNetworking - 向 REST 发送 HTTP POST,发送带有 Base64string 图像的 JSON的主要内容,如果未能解决你的问题,请参考以下文章

使用 AFNetworking 发送图像和其他参数

AFNetworking 通过 JSON 从音频发送字节

使用 AFNetworking 将 .zip 文件上传到 REST 服务器失败

无法通过 HTTPClient 向 REST 发送 post 请求

如何在 iOS 中使用 AFNetworking 从 REST 接口定期轮询/拉取

使用 angular 向 django-rest 发送 DELETE 请求被解释为 OPTIONS