【发布时间】:2022-01-06 15:21:34
【问题描述】:
我正在尝试在 alamofile Multiform 数据中发送带有图像的字典数组。但它返回错误 期望字典,但得到了 str for product_review_skin_concerns
代码如下:
func uploadReviewFiles(method:HTTPMethod,imagesData:[Data],imageKey:String,parm:Parameters,header:HTTPHeaders,url:String,comp:@escaping(Result<Data,AFError>)->Void){
AF.upload(multipartFormData: { (multipartFormData) in
for data in imagesData{
multipartFormData.append(data, withName: imageKey, fileName: "\(Date().timeIntervalSince1970).png", mimeType: "image/png")
}
for (key, value) in parm {
if key == "product_review_skin_concerns"{
guard let arr = value as? [[String:Any]] else{return}
for val in arr{
multipartFormData.append("\(val)".data(using: String.Encoding.utf8)!, withName: key)
}
}else{
multipartFormData.append("\(value)".data(using: String.Encoding.utf8)!, withName: key)
}
}
}, to: url,method: method,headers: header).validate(statusCode: 200..<299).responseData { (data) in
switch data.result{
case .success(let recivedData):
print(NSString(data: recivedData, encoding: String.Encoding.utf8.rawValue) ?? "Unable to pring string value of data")
comp(.success(recivedData))
case .failure(let error):
comp(.failure(error))
print(error)
print(error.localizedDescription)
}
}
}
这是我用图片发布的 parm 参数
["cons": "Test Review", "product": "9a66dc08-a54f-4af4-928c-14e760af9e8e", "rate": 3, "pros": "Test Review", "product_review_skin_concerns": [["skin_concern": "a2d92030-93f3-4c71-a834-1a6a1b937183", "percent": 0], ["percent": 0, "skin_concern": "8ea0ab47-1c1a-4a78-ae62-91da250a09c9"], ["skin_concern": "717811f1-0a87-4ed0-8561-5c8a10c3968c", "percent": 0]]]
【问题讨论】:
-
您只是附加了字典的插值字符串描述。它可能需要某种特定格式,因此您需要弄清楚该格式是什么,并在上传期间将字典值转换为该格式。
-
@JonShier 我在邮递员中发送相同的参数,不知何故它与邮递员一起工作。
-
Postman 似乎正在为您编码字典,因此您需要弄清楚该编码是什么并在此处应用它。
标签: ios swift networking alamofire