【问题标题】:how to pass profile image with other parameters in api using Alamofire 5 in swift 5如何在 swift 5 中使用 Alamofire 5 在 api 中传递带有其他参数的个人资料图像
【发布时间】:2019-09-27 23:51:53
【问题描述】:
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")
            }
        }

【问题讨论】:

  • 没有图片我用这个方法

标签: json swift api alamofire multipartform-data


【解决方案1】:

试试这个。它解决了我的问题

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)
            }
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 2016-01-16
    相关资源
    最近更新 更多