Формат запроса Ecobee немного странный, поскольку он использует закодированные в форме параметры, но одно из значений - это закодированное в JSON тело. Вам придется немного подготовиться к работе, поскольку Alamofire, естественно, не поддерживает что-то подобное. Это просто пример кода, вам нужно сделать работу, чтобы сделать его более безопасным.
Сначала закодируйте параметры JSON и получите значение String
:
let jsonParameters = ["selection": ["selectionType": "registered", "selectionMatch": ""]]
let jsonData = try! JSONEncoder().encode(jsonParameters)
let jsonString = String(decoding: jsonData, as: UTF8.self)
Затем создайте фактические значения параметров и заголовков:
let parameters = ["format": "json", "body": jsonString]
let token = "token"
let headers: HTTPHeaders = [.authorization(bearerToken: token), .contentType("text/json")]
let url = URL(string: "https://api.ecobee.com/1/thermostat")!
И сделайте запрос:
AF.request(url, parameters: parameters, headers: headers).responseJSON { response in ... }