不成功如何重新提交 URLRequest?
How do I resubmit URLRequest when unsuccessful?
我不确定如何在不成功时重新提交 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
})
大部分时间它都顺利通过,一切都按预期进行。我如何让它继续尝试请求,但如果它不成功?它可以达到 "let task ..." 就好了,但这就是它被赶上的地方。供参考:
urlNew = "MyAPI String value is here"
请求不成功时可以递归调用函数
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()
}
我不确定如何在不成功时重新提交 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
})
大部分时间它都顺利通过,一切都按预期进行。我如何让它继续尝试请求,但如果它不成功?它可以达到 "let task ..." 就好了,但这就是它被赶上的地方。供参考:
urlNew = "MyAPI String value is here"
请求不成功时可以递归调用函数
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()
}