session.dataTask没有在ViewController中触发

时间:2019-03-24 08:02:55

标签: swift3

我多次使用session.dataTask从我的应用程序中的服务器检索数据,但是在此ViewController中,我不知道为什么未启动session.dataTask,我的服务器没有收到请求,因此响应为nil ... 我正在使用完全相同的功能,该功能来自我应用程序的另一部分,运行正常,但无法找到解决方案...

以下是初始通话:

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中,此代码是正确的。...

我也将我的课程添加为URLSessionDelegate

知道为什么我的session.dataTask不被触发(没有错误)吗?

0 个答案:

没有答案