【发布时间】:2018-01-10 14:10:09
【问题描述】:
我搜索了许多问题并应用了解决方案,但不知何故我的逻辑无法正常工作。这是 API 调用中所期望的:
我要打的电话是:
let parameters = [
"address": self.addressField.text ?? "",
"pharmacy_id": "\(pharmaID ?? 0)",
"is_default": "\(isDefault ?? 0)",
"cash_payment": "\(1)",
"is_home_delivery": "\(isDelivery ?? 0)"
] as [String : Any]
Alamofire.upload(multipartFormData:{ multipartFormData in
for key in parameters.keys {
let name = String(key)
if let val = parameters[name] as? String{
multipartFormData.append(val.data(using: .utf8)!, withName: name)
}
}
DispatchQueue.main.async {
for (image) in self.presImagesArray {
if let imageData = UIImageJPEGRepresentation(image, 0.5) {
multipartFormData.append(imageData, withName: "prescription[]", fileName: "image.jpeg", mimeType: "image/jpeg")
}
}
// for (image) in self.presImagesArray {
// multipartFormData.append(UIImageJPEGRepresentation(image, 0.1)!, withName: "prescription", fileName: "image.jpg", mimeType: "image/jpg")
// }
}
},
usingThreshold:UInt64.init(),
to:url,
method:.post,
headers:headers,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
// if let result = response.result.value as? [String: AnyObject] {
// print(result["message"])
// }
print(response)
self.clearAllNotice()
self.successNotice("Success")
}
case .failure(let encodingError):
print(encodingError, encodingError.localizedDescription)
self.clearAllNotice()
self.errorNotice(encodingError.localizedDescription)
}
})
} else {
self.noticeInfo("Login Needed")
}
}
我遇到的问题是调用返回一条消息,指出 The prescription field is required. 这意味着 prescription[] 中的上传图像无法正常工作,后端人员说问题出在我的尽头。
正如您从代码中看到的那样,我添加了一个 for 循环,在其中我正在转换和发送图像数据,密钥是 prescription[],但我仍然收到此响应。
【问题讨论】:
标签: ios alamofire multipartform-data