sguruapp@gmail.com
facebook vk instagram Телеграм youtube

Отправка Post запроса, без сторонних библиотек - Swift 5


// Данные, которые вы будете отправлять. Записываем их в Struct и подписываемся под протокол Codable
struct Picklist : Codable {
var code = String()
var password = String()
}


// Данные, которые мы получим в ответ - в формате JSON
struct JSResult : Decodable {
var id = String()
var course = String()
var fio = String()
}

// Массив в котором будут храниться полученные данные
var JSResultData = JSResult()


// При нажатии кнопки войти
@IBAction func LogInInfo(_ sender: UIButton) {
resAPI(Login: textBoxCode.text!, Password: textBoxPassword.text!)
}


// Функция!
func resAPI(Login : String, Password : String) {

let request = NSMutableURLRequest(url: NSURL(string: "http:/index.php")! as URL)
request.httpMethod = "POST"

let myID = Picklist.init(code: Login, password: Password)
let encoder = JSONEncoder()

do {
let jsonData = try encoder.encode(myID)
request.httpBody = jsonData
print("jsonData: ", String(data: request.httpBody!, encoding: .utf8) ?? "no body data")
} catch {
print("ERROR")
}


// Получение данных
let task = URLSession.shared.dataTask(with: request as URLRequest) {
data, response, error in
do {
let rs = try
JSONDecoder().decode(JSResult.self, from: data!)
self.JSResultData = rs

// Отображение полученных данных
DispatchQueue.main.async {
self.labelData.text = ""
self.labelData.textColor = .black
self.performSegue(withIdentifier: "clientCard", sender: nil)
}
}
catch {
DispatchQueue.main.async {
self.labelData.text = "Не верный код"
self.labelData.textColor = .red
}
}

// Проверка на ошибки
if error != nil {
print("error str=\(error)")

DispatchQueue.main.async {
self.labelData.text = "Ошибка \(error!)"
self.labelData.textColor = .red
}
return
}
}
task.resume()
}


Возврат к списку

обучись профессии будущего

Хочешь стать успешным разработчиком
приложений? Тогда добро пожаловать к нам.

обучись профессии будущего