我可以通过Postman上传照片,但在我的iOS应用程序中它失败了,我仍然从.success
获得encodingCompletion
这是非常奇怪的。
以下是我的代码的一部分
UpdateUserInfo
//
// Update user info
//
func updateUserInfo(){
var imageData: Data!
var url = ""
if let userId = KeychainWrapper.standard.string(forKey: USER_ID_KEY){
url = URL_USER_UPLOAD_PIC + userId
}
if pickedImage != nil{
imageData = UIImagePNGRepresentation(pickedImage)
//imageData = UIImageJPEGRepresentation(pickedImage!, 1.0)
}
let token = KeychainWrapper.standard.string(forKey: USER_LOGIN_TOKEN_KEY)!
let headers: HTTPHeaders = [
"Authorization": "Bearer \(token)"
]
if imageData != nil{
Alamofire.upload(multipartFormData: { (multipartFormData) in
multipartFormData.append(imageData!, withName: "fileset", fileName: "file.png", mimeType: "image/png")
}, to: url,
method: .post,
headers: headers,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
print("Donkey Success \(String(describing: upload.response?.statusCode))")
upload.responseString(completionHandler: { (response) in
debugPrint(response)
})
case .failure(let encodingError):
print(encodingError)
print("Donkey Fail")
}
})
}
}
在我的邮递员中我有
邮差
我的第一个问题是,如果无法上传,我会收到.success?
我的第二个问题是,我是否需要输入密钥" pic" (在邮差中看到)我的请求中的某个地方?如果是这样的话?
感谢您提前提供任何帮助
答案 0 :(得分:1)
在Post man中,图片密钥为pic
,但在您的代码中为"fileset"
更改为
multipartFormData.append(imageData!, withName: "pic", fileName: "file.png", mimeType: "image/png")
success
是编码不上传流程的结果EncodingResult是定义的MultipartFormDataEncodingResult
MultipartFormData
编码是否成功并包含 编码结果作为关联值。 - 成功:代表成功的MultipartFormData
编码并包含 新的UploadRequest
以及 流信息。 - 失败:用于表示MultipartFormData
编码中的失败 包含编码