Сетевой запрос периодически прерывается с ошибкой -1009 Интернет-соединение кажется отключенным - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть несколько запросов, которые я вызываю для метода viewDidLoad моего начального контроллера представления.Иногда эти запросы терпят неудачу с Error Code -1009 The internet connection appears to be offline. для некоторых пользователей, а другие не имеют его.Иногда пользователи, которые получают ошибку, могут использовать ее через некоторое время без проблем.Это обычно происходит в сотовой сети.И другие приложения работают на их телефоне, а не на нашем.

Все эти запросы используют один и тот же метод в моем классе обслуживания.Сначала у меня есть перечисление API, и я преобразую их в URLRequest, используя протокол URL-запроса Alamofire URLRequestConvertible.Затем я передаю этот запрос в Alamofire и обрабатываю ответ.

func get<T:Codable>(_ api: ServiceAPI, resultType: T.Type, completion: @escaping (_ result: T?, _ error: Error?) -> ()) {
    Alamofire.request(api).validate().responseJSON { response in
      switch response.result {
      case .success(let json):
        print("\(api.path):\n\(json)")
        do {
          if let data = response.data {
            let jsonDecoder = JSONDecoder()
            let dictionary = try jsonDecoder.decode([String: T].self, from: data)
            if let result = dictionary["result"] {
              completion(result, nil)
            } else {
              completion(nil, self.resultNotFoundError)
            }
          }
        } catch {
          completion(nil, error)
        }
      case .failure(let error):
        error.trackMixPanelEvent()
        completion(nil, error)
      }
    }
  }

Поскольку я создаю экземпляр класса Service и вызываю для него метод get для каждого запроса, возможно ли, что запрос выполняетсяосвобождаться?Что также может быть причиной такой прерывистой сетевой ошибки?

Также следует отметить, что все запросы веб-службы используют метод POST.

...