我正在使用alamofire5 beta,找不到以前版本中使用的encodingResult。
这是我的代码功能:
static func postComplexPictures(complexId: String, pictures: [UIImage], completion:@escaping (DataResponse<Data?>) -> Void) {
let url = K.ProductionServer.baseURL + "/api/v1/complex/" + complexId + "/pictures"
let token: String = UserDefaults.standard.string(forKey: "Token") ?? ""
let bearerToken: String = "Bearer " + token
let bundleId: String = Bundle.footballNow.bundleIdentifier!
let headers: HTTPHeaders = [HTTPHeaderField.authentication.rawValue: bearerToken,
HTTPHeaderField.contentType.rawValue: ContentType.multipart.rawValue,
HTTPHeaderField.bundleIdentifier.rawValue: bundleId]
AF.upload(multipartFormData: { (multipartFormData) in
for image in pictures {
if let imageData = UIImageJPEGRepresentation(image, 0.5) {
multipartFormData.append(imageData, withName: "pictures[\(index)]", fileName: "picture", mimeType: "image/jpeg")
}
}
}, usingThreshold: UInt64.init(), to: url, method: .post, headers: headers).response(completionHandler: completion)
}
.response实际上调用了我的代码块,但是返回的速度太快,无法上传图像,并且我没有引用图像的上传状态。
有什么想法吗? 谢谢!
答案 0 :(得分:1)
我很高兴地说Alamofire 5没有编码结果!取而代之的是,多部分编码中的失败以及对其进行编码所需的异步工作现在与其他所有内容都在同一请求路径中。因此,就像其他任何请求一样,您在response
调用中会遇到任何错误。因此,如果您的请求很快完成,请检查错误,因为多部分编码可能会失败。