Подготовка данных для post запроса
Для того, что бы передать post запросом данные необходимо их записать таким образом
let body: [String: String] = ["username": "user1", "password": "pass"]
request.httpBody = JSONSerialization(withJSONObject: body, options: [])
Как в переменную body записать поля объекта? Например:
struct User {
var username: String?
var password: String?
var isActive: Bool?
var dopData: DopData? // Здесь может быть массив
}
struct DopData {
var field1: String?
var field2: String?
}
var example = User(...)
let body: [String: String] = encode(example) // Как реализовать подобное решение?
Ответы (1 шт):
Автор решения: Oleg Soloviev
→ Ссылка
body это словарь (dictionary), поэтому вы можете просто присвоить значения ключам:
struct User {
var username: String
var password: String
}
let example = User(username: "user", password: "pass")
let body: [String: String] = ["username": example.username, "password": example.password]
do {
request.httpBody = try JSONSerialization.data(withJSONObject: body, options: .prettyPrinted)
} catch {
print(error.localizedDescription)
}