gpt4 book ai didi

ios - 异步请求如果失败了怎么办?

转载 作者:行者123 更新时间:2023-11-30 13:30:00 25 4
gpt4 key购买 nike

我正在编写一个ios应用程序,它依赖于能够判断用户何时连接到wifi,以及当他或她连接或断开连接时,使用alamo fire发送异步请求。

我第一次连接时,我的异步成功。

但是,在我第一次连接后,任何 wifi 切换都会导致 404 错误。

我怀疑这是因为我在用户连接/断开连接后立即发送请求,这意味着他或她在短时间内没有互联网服务。

我的问题是,如果请求失败,我可以重复请求吗?或者是否可以“缓存”我想要发出的请求并等到用户有互联网连接后再发出请求?

最佳答案

有很多解决方案可以解决这个问题。一是再次递归调用download方法,实现错误自动重试机制:

func downloadSomething() {
Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
.response { request, response, data, error in
if let error = error {
log(error)
self.downloadSomething() // recursive call to downloadSomething
} else {
// do something on success
}
}
}

您可以通过以下方式扩展:

  • 还向用户显示另一个 View ,询问他是否要重试在重试下载之前是否下载。 (取决于您的针对网络错误的 UI 策略)
  • 指定的自动重试次数,然后询问用户。
  • 检查错误状态代码,然后根据代码执行以下操作不同的网络错误处理策略...
  • 等等...

关于ios - 异步请求如果失败了怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36673065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com