Я могу сделать это легко, если вручную добавлю строки к своему URL-адресу в Alamofire, но мне это не нужно. Мне нужны параметры как объект Parameter.
несколько значений в одном общем ключе для параметра

Что я делал:< /p>
public func findCreate(tags: [String], withBlock completion: @escaping FindCreateServiceCallBack) {
/* http://baseurlsample.com/v1/categories/ ... name[]=sss */
let findCreateEndpoint = CoreService.Endpoint.FindMultipleCategories
let parameters: Parameters = ["category_name[]" : tags]
Alamofire.request(
findCreateEndpoint,
method: .post,
parameters: parameters,
encoding: URLEncoding(destination: .queryString),
headers: nil
).responseJSON { (response) in
print(response)
}
//....
}
Текущий результат, если я его запустил, в порядке, но значения, отправленные на сервер, имеют [" "]. Например:
["chocolate"]
Опять же вопрос: в какой части всего кода я ошибаюсь? Как я могу отправлять параметры, подобные приведенным выше, которые имеют один общий ключ и несколько значений?
Я также пробовал добавить параметр кодирования в Alamofire.request () Если я добавлю кодировку: JSONEncoding.prettyPrinted или кодировку: JSONEncoding.default, я получу код состояния 500.
Некоторые ссылки имеют то же самое вопрос, но нет точных ответов, я всегда вижу сообщения, в которых есть ответы, например, использование пользовательской кодировки и все.
- https://github.com /Alamofire/Alamofire/issues/570
Moya/Alamofire — параметры в кодировке URL с одинаковыми ключами
Это работает, но мне нужно отправить несколько строк:
let parameters: [String : Any] = ["category_name[]" : tags.first!]
И это тоже работает:
Alamofire.request("http://baseurlsample.com/v1/categories/ ... name[]=sss", method: .post).responseJSON { (data) in
print(data)
}
Подробнее здесь: https://stackoverflow.com/questions/444 ... ple-values
Мобильная версия