我们的网络服务具有“ping”功能,非常适合测试网络服务是否可用(我真的不在乎互联网是否可用,对吗?)我知道如何测试这种情况,但我如何在我的应用程序中实现这一点?在哪里测试?
如果没有连接,应用程序当然不会崩溃,它只返回一个空表视图或一组视图。我应该在每个请求之前放置ping并在ping失败时生成异常或错误消息吗? Web服务请求+响应本身可能需要比实际数据的传输更长的时间(我猜它会延迟)所以我担心在每个请求之前实现Ping可能几乎是执行每个请求所花费的时间的两倍。或者,我应该不断ping并确保连接?什么是最佳做法?
或者我甚至应该担心它?
答案 0 :(得分:1)
我能够使用Reachability库,如How to check for an active Internet connection on iOS or OSX?的答案所示。您可以扩展库,不仅包括hostReachable,还包括wsReachable以及一些可能对所有人都很明显的工作。
答案 1 :(得分:0)
iOS可以在网络连接发生变化时为您提供回调(例如,从飞行模式到单元格再到wifi和返回)。因此,只要网络状态发生变化,您就会收到通知,并且您不需要继续ping服务器并且可以显示正确的在线/离线消息。
查看NetworkReachability.h标头中的SCNetworkReachabilitySetCallback方法。