Таким образом, у меня никогда не возникало этой проблемы при использовании AFNetworking
или при любом другом вызове API с использованием Alamofire
, однако, похоже, у меня возникла проблема, в основном у меня есть Array of Dictionaries
, который должен быть отформатирован следующим образом;
[{"value":"1","created_at":"2018-06-26 01:57:14"},
{"value":"4","created_at":"2018-06-26 01:59:44"}]
Однако они проходят через серверную часть вот так;
[{"value":"4"},{"created_at":"2018-06-26 02:30:11"},
{"value":"4"},{"created_at":"2018-06-26 03:24:41"}]
Я пытался создать жестко запрограммированный параметр, чтобы заставить его работать, но безуспешно, где я ошибаюсь, ребята (я знаю, что это, вероятно, что-то глупое),
вот жестко закодированные демо-параметры;
let dictA = ["value":"2", "created_at":"2018-06-26 04:05:50"]
let dictB = ["value":"4", "created_at":"2018-06-26 05:05:50"]
let params : NSDictionary = ["values":[dictA,dictB]]
ТИА
// EDIT
Вот запрос Alamofire
;
Alamofire.request(urlString, method: .post, parameters: params, encoding: URLEncoding.default, headers: headers).responseJSON(completionHandler: { response in
//Handle response
})
// EDIT
Я решил эту проблему путем обхода, по какой-то причине объекты правильно форматируются, когда они сериализуются в тело, используя собственный URLRequest
, а затем инициализируют запрос Alamofire
, используя этот запрос;
var request = URLRequest(url: url)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try! JSONSerialization.data(withJSONObject: params)
Alamofire.request(request).responseJSON(completionHandler: { response in
//Handle response
})