解析图像抛出 AFNetworking

Posted

技术标签:

【中文标题】解析图像抛出 AFNetworking【英文标题】:parse image threw AFNetworking 【发布时间】:2016-11-30 11:33:36 【问题描述】:

我需要将图像传递到 Web 服务。我正在使用 AFNetworking。到目前为止,我的代码如下所示。

 NSData *imageData = UIImageJPEGRepresentation(_imgA.image, 0.5); 
params = @@"category":self.displayDept.text,
           @"location": locationAdress.text,
           @"topic":self.topic.text,
           @"image":imageData,
           @"email":[NSString stringWithFormat:@"%@",useEmail]
           ;



AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager POST:@"webservice....."

   parameters:params  constructingBodyWithBlock:^(id<AFMultipartFormData> formData) 
       [formData appendPartWithFormData:imageData name:@"imageData"];

    success:^(NSURLSessionTask *task, id responseObject)

谁能告诉我这段代码有什么问题?谢谢

【问题讨论】:

您要添加两次图像??一个参数和多部分?并且两次都使用不同的键? 哪一个在这里工作?参数或多部分?你能建议一个方法吗? @金刚狼 Multipart 可以工作。从参数中删除。 当我删除参数时,显示错误“JSON 文本没有以数组或对象开头,并且允许未设置片段的选项。” UserInfo=NSDebugDescription=JSON 文本不以数组或对象开头,并且允许未设置片段的选项" @Wolverine 【参考方案1】:

用于从 pickercontroller 获取图像并将图像上传到服务器。

UIImage *img = [info valueForKey:UIImagePickerControllerOriginalImage];
    NSData *imgData = UIImageJPEGRepresentation(image, 0.5);
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    NSDictionary *parameters = @@"foo": @"bar";
    [manager POST:@"<json link>" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) 
        [formData appendPartWithFormData:imgData name:@"image"];
     success:^(AFHTTPRequestOperation *operation, id responseObject) 
        NSLog(@"Success: %@", responseObject);
     failure:^(AFHTTPRequestOperation *operation, NSError *error) 
        NSLog(@"Error: %@", error);
    ];

希望这能解决您的问题。

【讨论】:

以上是关于解析图像抛出 AFNetworking的主要内容,如果未能解决你的问题,请参考以下文章

解析加载图像 Swift 3.0

Adwords API 异常抛出

如何使用颤振加载图像

图像未在 Flutter 中加载

使用 NSJSONSerialization 解析 JSON - 抛出 NSException

图像?不能转换为 UIImage:Xcode 在尝试使用原始图像时抛出错误