Я пытаюсь отправить массив строк на сервер в многокомпонентном запросе с использованием библиотеки 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"]