session.dataTask не запускается во ViewController - PullRequest
0 голосов
/ 24 марта 2019

Я использую session.dataTask для получения данных с сервера в моем приложении несколько раз, но в этом ViewController я не знаю, почему session.dataTask не запускается, мой сервер не получает запрос, следовательно, ответ ноль... Я использую точно такую ​​же функцию из другой части моего приложения, которая работает нормально, но я не могу найти решение ...

Вот начальный вызов:

let refreshAlert = UIAlertController(title: "Choix ", message: "\nVoulez vous que l'on choisisse pour vous ?", preferredStyle: UIAlertControllerStyle.alert)
        refreshAlert.addAction(UIAlertAction(title: "Non, je le choisis manuellement", style: .cancel, handler: { (action: UIAlertAction!) in
//do something
        }))
        refreshAlert.addAction(UIAlertAction(title: "Oui", style: .default, handler: { (action: UIAlertAction!) in

            DispatchQueue.main.async(execute: {
                self.getRandom()
            })
            //I also tried to call without dispatch but same result

        }))
        present(refreshAlert, animated: true, completion: nil)

А вот и функция

func getRandom(){

    let url_to_request = "\(SERVER)/GetRandom"
    let url:URL = URL(string: url_to_request)!
    let configuration = URLSessionConfiguration.default
    configuration.timeoutIntervalForRequest = 30.0
    configuration.timeoutIntervalForResource = 60.0
    let session = Foundation.URLSession(configuration: configuration,
                                        delegate: self,
                                        delegateQueue:OperationQueue.main)
    var request = URLRequest(url: url)
    request.httpMethod = "GET"
    request.cachePolicy = NSURLRequest.CachePolicy.reloadIgnoringCacheData
    request.timeoutInterval = 10

    let task = session.dataTask(with: request, completionHandler: {
        (
        data, response, error) in

        print("request: \(request)")
        print("Response: \(response)")

        let res = response as! HTTPURLResponse
        print("Status Code : \(res.statusCode)")

        guard let _:Data = data, let _:URLResponse = response, error == nil else {
            print("error data")
            return
        }
        print("data: \(data?.debugDescription)")



    })
    task.resume()
}

, в этом случае ответ равен нулю ... в другом ViewController этот код верен ....

Iтакже добавил мой класс как URLSessionDelegate

Любая идея, почему мой session.dataTask не запускается (без ошибки)?

...