ios – Alamofire:如何在多部分表单数据中附加json数组参数?

前端之家收集整理的这篇文章主要介绍了ios – Alamofire:如何在多部分表单数据中附加json数组参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试发送照片和参数,但问题是我想将 JSON数组发送到服务器.似乎Alamofire没有发送数据列表的方法,那么另外一个很好的选择呢?

问题的关键部分是:

var encodedTags: [Data] = tags.map({ return $0.data(using: .utf8)!})
            mpd.append(encodedTags,withName: key)

在此上传电话中:

let parameters: [String: Any] = ["username": "TheCooliest",...,"tags": ["KoolKid","TheKooliest","BetterThanKimK"]    
...

upload(multipartFormData: { (mpd) in
        mpd.append(url,withName: "file",fileName: "weeknd.jpg")
        for (key,value) in parameters {
            if let tags = value as? [String],key == "tags" {
                var encodedTags = tags.map({ return $0.data(using: .utf8)!})
                mpd.append(encodedTags,withName: key)

            }
        }
    }

解决方法

如果你想用Swift 4做,你可以使用新的JSONEncoder.
您可以使用多部分表单数据上传文件和JSON参数:

let image = UIImage(named: "test")
let png = UIImagePNGRepresentation(image!)!

let arr = ["str1","str2"]
let jsonArr = try? JSONEncoder().encode(arr)

Alamofire.upload(multipartFormData: { (multiPart) in
    multiPart.append(png,fileName: "aaa.png",mimeType: "image/png")

    if let jsonArr = jsonArr {
        multiPart.append(jsonArr,withName: "pictures")
    }
},to: URL) { (result) in
}

猜你在找的iOS相关文章