NSURLConnection sendAsynchronousRequest导致“无法找到具有指定主机名的服务器”

时间:2013-08-14 20:41:54

标签: ios objective-c nsurlconnection nsurlrequest sendasynchronousrequest

我正在使用[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:completionHandler]进行一些网络请求。

不幸的是,在我执行这些请求的一半时间内,我得到NSError A server with the specified hostname could not be found。我也有时会得到Request timed out,但不那么频繁。

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

请求将发送到http以上。有时也可能同时发送2或3个请求。

我的问题:

  • sendAsynchronousRequest是否会执行与导致此行为的基于委托的NSURLRequest方法有显着差异的任何内容?
  • 如果没有,是否有优雅的方法来优雅地处理这些错误?我已尝试重试请求到达限制,但它们都会导致错误。我考虑过在重试之间设置延迟,但似乎没有什么区别。

1 个答案:

答案 0 :(得分:0)

你试过Apple的可达性包装吗?它可以帮助您隔离错误。如果Reachability说一件事,但NSURLConnection正在说别的话,那可能有些不对劲。我假设您查询的网络服务负载太大,或者您的互联网不稳定。

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

您可以使用Reachability.h / .m类通过完全测试Internet连接以及主机名连接来查询系统的Internet可访问性。