如何将此参数发送到多部分
let dictionary = [
"user" :
[
"email" : "\(email!)",
"token" : "\(loginToken!)"
],
"photo_data" :[
"name" : "Toko Tokoan1",
"avatar_photo" : photo,
"background_photo" : photo,
"phone" : "0222222222",
"addresses" :[[
"address" : "Jalan Kita",
"provinceid" : 13,
"cityid" : 185,
"postal" : "45512"
]],
"banks" :[[
"bank_name" : "PT Bank BCA",
"account_number" : "292993122",
"account_name" : "Tukiyeum"
]]
]
]
我尝试了以下代码,但我无法将值(在NSDic中)编码为utf 8
for (key, value) in current_user {
if key == "avatar_photo" || key == "background_photo"{
multipartFormData.appendBodyPart(fileURL: value.data(using: String.Encoding.utf8)!, name: key) // value error because its NSDic
}else{
multipartFormData.appendBodyPart(data: value.data(using: String.Encoding.utf8)!, name: value) // value error because its NSDic
}
}
附加正文部分中的 value
不能使用,因为它的NSDictionary不是字符串。如何将该参数放在multipartformdata中的正确方法?
答案 0 :(得分:1)
允许嵌套的多部分。
明确允许在另一个多部分实体的正文部分中使用多部分的内容类型。在这种情况下,出于显而易见的原因,必须注意确保每个嵌套的多部分实体必须使用不同的边界定界符。
所以你必须在外循环上做同样的事情:简单地循环生成键值对的字典内容。显然,您必须设置不同的部件分隔符,因此客户端可以将嵌套的部件更改与顶级部件更改区分开来。
将整个结构作为application / json发送可能更容易。