1

我正在使用[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:completionHandler].

不幸的是,在我执行这些请求的一半时间里,我得到了一个NSErrorwith A server with the specified hostname could not be found。我也有Request timed out一些时间,但不太频繁。

我在地下室,所以这可能只是网络连接的问题,但我可以使用其他应用程序发送请求。我也可以在 safari 中很好地加载 URL,速度测试看起来也很好。

请求被发送到 over http。有时可能会同时发送 2 个或 3 个请求。

我的问题:

  • 与基于委托的方法有什么sendAsynchronousRequest明显不同NSURLRequest会导致这种行为吗?
  • 如果没有,是否有更好的方式来优雅地处理这些错误?我试过只是重试请求到一个限制,但它们都会导致错误。我考虑过在重试之间设置一个延迟,但这似乎没有什么区别。
4

1 回答 1

0

您是否尝试过 Apple 的可达性包装器?它可以帮助您隔离错误。如果 Reachability 说的是一件事,但 NSURLConnection 说的是另一件事,则可能有问题。我假设您查询的网络服务负载过大,或者您的互联网不稳定。

http://developer.apple.com/library/IOs/samplecode/Reachability/Introduction/Intro.html

您可以使用 Reachability.h/.m 类来查询系统的 Internet 可达性,方法是完全测试 Internet 连接以及主机名连接。

于 2013-08-14T20:48:36.597 回答