将字符串数组附加到正文的 Swift 多部分/表单数据上传(问题:数组作为字符串到服务器)

比鲁平托

我尝试使用 Alamofire Swift 库在多部分请求中将字符串数组发送到服务器,我尝试了几种方法来对数组进行编码,但大部分时间它都作为字符串。谁能帮我这个。除了数组发送图像上传和其他值对服务器正常。下面是我的代码。

var parameters: Parameters = [
        "UEmail": userObj.email,
        "UFirstName": fName,
        "ULastName": lName,
        "VisitedCountries": getVisitedCountryCodeList() //return String array
    ]

let headers: HTTPHeaders
    headers = ["Content-type": "multipart/form-data"]

    AF.upload(multipartFormData: { (multipartFormData) in
        for (key, value) in parameters {
            if let subArray = value as? NSArray {
                do {
                    if(key == "VisitedCountries"){
                        let data = try JSONSerialization.data(withJSONObject: self.getVisitedCountryCodeList(), options: [])
                        multipartFormData.append(data, withName: "VisitedCountries" )
                    }
                } catch {
                    print("error msg")
                }
            } else {
                multipartFormData.append((value as! NSString).data(using: String.Encoding.utf8.rawValue)!, withName: key )
            }
        }

        if(self.selectedProfileImage != nil){
            guard let imgData = self.selectedProfileImage.jpegData(compressionQuality: 2) else { return }
            multipartFormData.append(imgData, withName: "file", fileName: "image.jpeg", mimeType: "image/jpeg")
        }

    },usingThreshold: UInt64.init(),
      to: "\(Constants.SERVER_URL)\(Constants.USER_EDIT)",
      method: .post,
      headers: headers).response{ response in
        SVProgressHUD.dismiss()
        if(response.data != nil) {

            do {
                if let jsonData = response.data {
                    let parsedData = try JSONSerialization.jsonObject(with: jsonData) as! Dictionary<String, AnyObject>

                    print(parsedData)
                }

            } catch {
                print("error msg")
            }
        } else {
            print("user edit response2 \(response) end")
        }
    }

上面是我的 AF.upload 代码。数组追加是我遇到问题的部分。这是数组附加代码。

//getVisitedCountryCodeList() returns string array  

let data = try JSONSerialization.data(withJSONObject: self.getVisitedCountryCodeList(), options: []) 
multipartFormData.append(data, withName: "VisitedCountries" )

我也试过下面的代码

multipartFormData.append(try JSONEncoder().encode(self.getVisitedCountryCodeList()), withName: key )

下面是服务器得到的,这是字符串而不是数组

"VisitedCountries"=>"[\"ALG\",\"ARG\"]"

但我需要这样发送

"VisitedCountries"=> ["ALG","ARG"]
比鲁平托

终于自己找到了答案,只需要对键值做一个小技巧即可。下面是代码。

for code in self.getVisitedCountryCodeList(){
    if let codeData = code.data(using: .utf8) {
        multipartFormData.append(codeData, withName: key+"[]" )
    }
}

key+"[]""VisitedCountries[]"是这里的技巧,它会自动将其捕获为数组并将下一个值添加到其中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将附加字符串添加到消息正文(Swift)

来自分类Dev

无法将字符串附加到 Swift 中的可变数组

来自分类Dev

使用多行 Swift 字符串构建多部分表单数据不起作用

来自分类Dev

将 FirebaseDataSnapshot 作为字符串添加到数组 (Swift 3)

来自分类Dev

如何在Swift中将字符附加到字符串?

来自分类Dev

将 JSON 数组附加到字符串数组

来自分类Dev

Swift的字符串数组

来自分类Dev

如何将字符串内容附加到数组

来自分类Dev

PHP:将字符串值附加到数组

来自分类Dev

将字符串附加到awk中的数组元素

来自分类Dev

Swift无法将字符串追加到使用字典查找的数组

来自分类Dev

Express:解析多部分/表单数据中的字符串数组

来自分类Dev

字符串快速附加到数组

来自分类Dev

在Swift中将字符串数组追加到字符串

来自分类Dev

将C字符串数组转换为Swift字符串数组

来自分类Dev

将Swift字符串数组转换为C字符串数组指针

来自分类Dev

将Swift字符串数组转换为C字符串数组指针

来自分类Dev

将字符串数组附加到单个字符串

来自分类Dev

将Swift CChar数组转换为字符串

来自分类Dev

SWIFT-将数组下转换为字符串

来自分类Dev

Swift-任何数组到字符串数组

来自分类Dev

子字符串和数组字符串-Swift

来自分类Dev

带字符串参数的多部分表单数据的Ruby Grape编码问题

来自分类Dev

将字符串数组显示为多行字符串-Swift

来自分类Dev

Swift:将字符串分隔为字符串数组并追加分隔符

来自分类Dev

Swift字符串数组迭代函数

来自分类Dev

比较 Swift 中的字符串数组

来自分类Dev

多字符串变量数组swift

来自分类Dev

Python将*。*附加到字符串

Related 相关文章

热门标签

归档