如果不成功,如何重新提交URLRequest?

时间:2019-05-01 04:07:54

标签: swift api urlrequest

我不确定URLRequest不成功时如何重新提交。

我有一个调用多个API的函数。对于其中一个API请求,大约有一半的时间在第一次尝试中均失败,因此我必须再次按我的应用程序上的按钮,以使其再次运行该功能,直到通过为止。我已经将我的代码跟踪到被捕获的确切位置,但是不确定如何处理它以继续尝试请求直到成功。下面是我的代码。

        let request = URLRequest(url: URL(string: urlNew)!)

        let session = URLSession.shared

        let task = session.dataTask(with: request, completionHandler: {data, response, error -> Void in
            // other logic happens here
        })

大多数情况下,它通过得很好,并且一切正常。在不成功的情况下,如何使它继续尝试请求?它可以很好地解决“让任务...”的问题,但这就是它被追上的地方。供参考:

urlNew = "MyAPI String value is here"

1 个答案:

答案 0 :(得分:0)

请求失败时,您可以递归调用函数

func callAPI(urlNew:String) {
    let request = URLRequest(url: URL(string: urlNew)!)

    let session = URLSession.shared

    let task = session.dataTask(with: request, completionHandler: {data, response, error -> Void in
        // other logic happens here
        guard let data = data, error == nil else {
            self.callAPI(urlNew:urlNew)
            return
        }
    })
    task.resume()
}