素材牛VIP会员
iOS开发,后台接口问题。上传图片,怎么把图片放入字典?怎么搞定后台?
 馨***2  分类:Java代码  人气:883  回帖:3  发布于6年前 收藏

iOS开发需要上传图片,常用功能。使用POST请求
我使用AFN,一般都是配置请求头,
google 了很久, 没收获。
请求体里面放图片二进制数据。
现在后台要求,后台是Java, 上传图片需要键值匹配?

不会了!

 [formData appendPartWithFileData:imageData name: @"photoFile" fileName:[NSString stringWithFormat:@"%@%@.jpeg",dateString,@(idx)] mimeType:@"image/jpeg"];
//其中name很重要,很重要,是后台上传的key,这个是后台规定的,要跟后台协商,不同的后台,可能写图片上传的key,就不一样,这个要问后台了,我就是没有跟后台协商,

我设置name后, 经后台检测,上传成功了。
AFN 报错。

domain: @"com.alamofire.error.serialization.response"

这个错误,我堵了半天,没堵上。
具体: 我在AFN 的

 @implementation AFJSONResponseSerializer
 

处理 类型,感觉 失败了。

 self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];

感觉这个key -photoFile, 后台搞显式了。
跟后台协调,不要key,不太懂。被怼晕了,怎么说服后台?

讨论这个帖子(3)垃圾回帖将一律封号处理……

Lv5 码农
阿***7 产品经理 6年前#1

集成 七牛云、又拍云、阿里云OSS的sdk
直接传这些上边 然后给后台发一个图片的url

Lv5 码农
15***75 技术总监 6年前#2

按照AFN提示的报错,与后台协商,将返回的数据,由字符串转为JSON对象(字典),就好了。

Lv6 码匠
蜜***园 Web前端工程师 6年前#3
+ (void)requestForXppWithImageData:(NSData *)data success:(void (^)(NSDictionary *))success fail:(void (^)(NSError *))fail
{
    AFHTTPSessionManager *manager = [self requestManager];

    [manager POST:@"http://11.11.11.11:8888/xxx/xxx/xxx"
       parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
    [formData appendPartWithFileData:data name:@"" fileName:@"" mimeType:@""];
}
         progress:nil
          success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
              if (responseObject)
              {
                  NSString *data = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];
                  NSDictionary *dic = [self dicFromJson:data];
                  if (dic){ success(dic);}
              }
          }
          failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
              if (error){ fail(error);}
          }];
}

这个是我写的,当初遇到了和你一样的问题。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取