#ios #swift
#iOS #swift
Вопрос:
Я пытаюсь создать простой прототип как с сервером (EC2 dev server), так и с клиентом. Когда сервер просто имеет жесткий IPv4-адрес (номера) и отправляет результаты http по запросам, а клиент является прототипом приложения iOS 12 , где я просто хочу получить данные с сервера, который использует http. Как я могу это сделать? Заранее спасибо!
Ответ №1:
Читайте о URLSession и о том, как извлекать веб-данные в память.
func startLoad() {
let url = URL(string: "http://IPADDRESS/")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
self.handleClientError(error)
return
}
guard let httpResponse = response as? HTTPURLResponse,
(200...299).contains(httpResponse.statusCode) else {
self.handleServerError(response)
return
}
// Data is in the data-variable.
if let mimeType = httpResponse.mimeType, mimeType == "text/html",
let data = data,
let string = String(data: data, encoding: .utf8) {
// Avoid using the main-thread to return any data.
DispatchQueue.main.async {
// Return data to use in view/viewcontroller
self.webView.loadHTMLString(string, baseURL: url)
}
}
}
task.resume()
}
Другие вещи, с которыми вы, вероятно, захотите ознакомиться, — это MVVM / MVC для управления данными между представлениями и кодируемыми файлами.
Комментарии:
1. Спасибо! вы спасаете жизнь! и спасибо за дальнейшее чтение!
2. MVVM / MVC, является ключом к этому вопросу, ЛОЛ