json - 如何在 swift 5 中使用 Alamofire 5 在 api 中传递带有其他参数的个人资料图像
问题描述
AF.request(urlString, method: .post, parameters: paramValue,encoding: URLEncoding.queryString, headers: ["accesstoken": "123456"]).responseJSON {
response in
switch response.result {
case .success(let JSON):
print("Login Response NSDictionary---->>",JSON as! NSDictionary)
delegate?.didSuccess(result: JSON as! NSDictionary, withID: "login")
break
case .failure(let error):
print("error----->>",error)
delegate?.didError(result: error, withID: "login")
}
}
解决方案
试试这个。它解决了我的问题
class func uploadImage(_ strURL: String, parameters: [String: Any]?,image: UIImage?,keyImage : String, success:@escaping apiSuccess, failure:@escaping apiFailure) {
print(parameters as Any)
var UrlFinal = ""
do
{
try UrlFinal = baseURL + strURL.asURL().absoluteString
}
catch{
}
Alamofire.upload(
multipartFormData: { MultipartFormData in
for (key, value) in (parameters)! {
print((key, value))
MultipartFormData.append((value as! String).data(using: String.Encoding.utf8)!, withName: key)
}
if image != nil{
guard let imageData = image!.jpegData(compressionQuality: 1) else { return }
MultipartFormData.append(imageData, withName: keyImage, fileName: "file1.jpeg", mimeType: "image/jpeg")
}
}, to: UrlFinal) { (result) in
switch result {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (progress) in
print("Upload Progress: \(progress.fractionCompleted)")
})
upload.responseJSON { response in
if let res = response.result.value{
print(res)
Global.appDelegate.hideLoader()
success(res)
}else{
}
}
case .failure(let encodingError):
print(encodingError)
failure(encodingError)
}
}
}
推荐阅读
- android - 如何使用编码 utf8 在 Kotlin 中解析 XML?
- javascript - 调用同一文件中的测试函数
- php - 如何在 MySQL 数据库中存储各种单词形式?
- powerbi - 如何在 Power BI 中显示和隐藏饼图
- c++ - 编译器中的哪个程序负责预处理器?
- c# - 测试列表结果
- python - 转换具有不同值的有序字典
- android - how to adjust the borders for hexagon shape to imageview
- javascript - 多个 onClick 选择器究竟是如何按时间工作的?
- javascript - 一行中的多个导入