用这种方式测试可达性是不是不好的做法?



通过使用NSURLConnection调用在某个方法上返回YES来测试web服务的可达性是不好的做法吗?

我尝试了其他方法,但不知道如何测试特定服务是否可用,而不是WiFI或类似的。

SCNetworkReachability(参见Apple的可达性示例代码),但它只检查服务器是否应该可达,它不会告诉你服务是否实际可用(运行)。为此,你必须尝试使用它。只要确保而不是在主线程上使用sendSynchronousRequest:returningResponse:error:,因为这是同步的,并且会阻塞线程直到它完成。如果你在主线程上这样做,UI将冻结,直到服务响应或超时。所以要么使用NSURLConnection的异步方法("推荐的"方法),要么在单独的线程上使用同步方法。在我看来,前者更容易/更好。

这是唯一的可靠的方法。但是,在您进行测试和尝试获取实际数据之间,服务的状态可能会发生变化,因此您必须对实际连接进行编码,就好像您还没有检查过一样,那么为什么还要进行单独的检查呢?

最新更新