Итак, я создаю приложение и хочу получать данные со своего собственного сервера, используя alamofire.но я не знаю почему, иногда я получаю сообщение об ошибке
Ошибка загрузки HTTP (код ошибки: -1005 [1:57]).закончили с ошибкой - код: -1005.ошибка: сетевое соединение было потеряно.
, и это происходит только тогда, когда я пытаюсь получить данные на свой собственный сервер.Я пытаюсь сравнить, чтобы получить данные с другого сервера, из darksky API, и я никогда не получаю ошибку.Вот код, который я использую для получения данных с моего собственного сервера и для darksky API.
ошибка обычно возникает, когда .....
после запуска приложения и нажатия кнопкиКнопка «Домой» (поэтому приложение переходит в фоновое состояние), и когда я возвращаюсь в приложение, и в это время я обычно получаю сообщение об ошибке.
, поэтому, возможно, я получаю сообщение об ошибке при срабатывании prepareDataBeforeEnterForeground
.это случалось не всегда, и я не знаю, почему это случилось только с моим сервером, и мне нужно знать, как это исправить.
ошибка исходит из моего кода или с сервера?
import UIKit
import Alamofire
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
getData()
getPrepareDataBeforeEnterForeground() // using notification center
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
getData()
}
func getData() {
// to make request to my own server OR to DarkSky API
let url = URL(string: "https://")
let parameters : [String:String] = ["xxx": "xxxx"]
Alamofire.request(url!, method: .get, parameters: parameters).responseJSON { (response) in
switch response.result {
case .failure(let error):
print("Error: \(error.localizedDescription)")
case .success(let value) :
// parse the data
}
}
}
func getPrepareDataBeforeEnterForeground() {
// to trigger some function after the enter the background state
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.prepareDataBeforeEnterForeground), name: NSNotification.Name.UIApplicationWillEnterForeground, object: nil)
}
@objc func prepareDataBeforeEnterForeground() {
getData()
}
}