iOS 13. URLSession игнорирует переменные тайм-аута, можно ли это исправить? - PullRequest
0 голосов
/ 27 мая 2020

Я новичок в программировании iOS, мне может не хватать чего-то простого, но уже несколько часов я пытаюсь найти решение по этому поводу в Google и не могу его найти.

Проблема в том, что если я отключаю сеть, HTTP-запрос не выполняется, как ожидалось. Если я выключу свой сервер Node (на которого указывает urlString), соединение зависнет навсегда. Неважно, если я потом включу сервер. Также, если я установил короткие значения в тайм-ауте.

Это фрагмент кода, который я использую.

   if let url = URL(string: urlString) {
            let config = URLSessionConfiguration.default
            config.waitsForConnectivity = true
            config.timeoutIntervalForResource = 5
            config.timeoutIntervalForRequest = 5
            print(config)
            let session = URLSession(configuration: config)
            let task = session.dataTask(with: url) { (data: Data?, response:URLResponse?, error:Error?) -> Void in
                if error == nil { .... 
     ...
    task.resume()
   }

Изменение waitsForConnectivity на false не имеет значения.

Я действительно хотел бы иметь возможность установить жесткий и короткий тайм-аут (скажем, 10 сек c) для HTTP-запроса. Это упростило бы logi c моего приложения.

Есть идеи?

...