I'm getting this message in console:
findWriterForTypeAndAlternateType:119: unsupported file format 'public.heic'
And getting empty JSON as response hence always showing Failed, Something went wrong
My code:
func alamofireMultipart2<T: Decodable>(urlString: String, body: [String: String], images: [(image: UIImage, param: String, fileName: String)], resultType: T.Type, completion: @escaping ([String: Any]?, String, String) -> Void) {
print("Inside Alamofire multipart")
guard let url = URL(string: urlString) else {
print("Invalid URL: " + urlString)
return
}
let header = ["Authorization" : "Bearer \(AppConfigs.accessToken)"]
Alamofire.upload(
multipartFormData: { multipartFormData in
print("body:")
body.forEach {
key, value in
print("key: \(key), value: \(value)")
multipartFormData.append(Data(value.utf8), withName: key)
return
}
images.forEach {
(image, param, filename) in
let imageData = image.jpegData(compressionQuality: 0.8)
print("Image Size = \(imageData?.count.byteSize)")
multipartFormData.append(imageData!, withName: param, fileName: filename, mimeType: "image/jpeg")
}
},
to: url,
headers: header,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
print("\n\nupload result, response: ")
print(response)
print("Error: ")
print(response.error ?? "null")
guard let data = response.data else {
print("response.data is nil")
return
}
let serializedData = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
guard let parsedData = serializedData else {
print("Could not parse json")
completion(nil, "Failed", "Something went wrong")
return
}
let status = parsedData["status"] as? String ?? "Failed"
let message = parsedData["message"] as? String ?? "Something went wrong"
if status == "OK" {
print("Response parsed successfully! status is OK")
completion(parsedData, status, message)
} else {
print("status is not OK")
completion(nil, status, message)
}
}
case .failure(let encodingError):
print("Status Code: ")
print("Error!")
print(encodingError)
}
})
}