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

roc*_*oon 5 multipartform-data ios alamofire

我正在尝试发送带有参数的照片,但要注意的是我想将JSON数组发送到服务器。看来Alamofire没有发送列表的方法Data,那么还有什么替代方法呢?

问题的关键部分是:

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

在此上传调用中:

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)

            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

har*_*hav 0

我遇到了同样的情况,您必须将数组转换为字符串,然后编码并上传。就我而言,我必须加密数组并发送到服务器,然后服务器解密数组。

var encodedTags = tags.map({ return $0})
 //write logic to convert array to string
 mpd.append(encodedTags.data(using: .utf8)!, withName: key)
Run Code Online (Sandbox Code Playgroud)