objective-c - 如何使用 AFNetworking 设置超时

标签 objective-c ios xcode networking afnetworking

我的项目正在使用 AFNetworking。

https://github.com/AFNetworking/AFNetworking

如何调低超时时间?没有互联网连接的自动柜员机在大约 2 分钟内不会触发失败 block 。太长了……

最佳答案

更改超时间隔几乎肯定不是您所描述问题的最佳解决方案。相反,您真正想要的是让 HTTP 客户端处理网络变得无法访问,不是吗?

AFHTTPClient 已经有一个内置机制让您知道何时失去互联网连接,-setReachabilityStatusChangeBlock:

在慢速网络上请求可能需要很长时间。最好相信 iOS 知道如何处理慢速连接,并区分慢速连接和完全没有连接。


为了扩展我对为什么应该避免在这个线程中提到的其他方法的推理,这里有一些想法:

  • 甚至可以在请求开始之前取消请求。将请求排队并不能保证它实际开始的时间。
  • 超时间隔不应取消长时间运行的请求,尤其是 POST。想象一下,如果您尝试下载或上传 100MB 的视频。如果请求在速度较慢的 3G 网络上尽可能地进行,那么如果花费的时间比预期的要长,为什么还要停止它呢?
  • 执行 performSelector:afterDelay:... 在多线程应用程序中可能很危险。这会让自己面临晦涩难懂且难以调试的竞争条件。

关于objective-c - 如何使用 AFNetworking 设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8304560/

相关文章:

iphone - 模拟器和 IRL iPhone 没有相同的行为

iphone - 优化 Core Graphics 动画绘图 (iPhone)

ios - UIPopoverPresentationController 将弹出窗口显示为全屏

ios - 在为 IOS 发布之前如何查看我的应用程序页面?

Swift - 如何创建这种形式的气泡效果

swift 3.0 coreData 子类

objective-c - 如何在 Objective C 中的 1 位整数左侧添加零?

ios - 无法将 NSMutableArray 添加到 NSMutableArray

ios - 快速从 NSUserdefaults 中检索 bool 数组

ios - xCode unity-iphone 需要配置文件