62

我将这个 NSURLConnection 与代表一起使用。

nsconnection = [[NSURLConnection alloc] initWithRequest:request
    delegate:self startImmediately:YES];

问题是网站根本没有响应。什么都没有,只是在空白页面的浏览器中旋转,没有失败。在我的代表中,我处理失败,但是当站点没有响应时,代表不会被调用。关于如何使连接超时的任何想法?

4

2 回答 2

130

您可以在NSURLRequest对象中指定超时。一种方法是通过requestWithURL:cachePolicy:timeoutInterval:方法构造它。NSURLRequestUseProtocolCachePolicy(如果您不想担心那部分,可以传入默认的cachePolicy 参数。)超时是以秒为单位的浮点值,iPhone SDK 中的所有时间间隔基本上都是如此。

还要确保您NSURLConnection的委托已设置并响应该connection:didFailWithError:方法。连接总是调用此方法或connectionDidFinishLoading:在连接完成时调用。

于 2009-09-15T02:13:12.277 回答
24

编辑:这个答案现在已经过时了,但在回答的日期是准确的。

我知道这个线程很旧,但我也遇到了这个问题。这发生在在服务所在的内部网络之外测试应用程序时。该服务最终会超时,但 Apple 要求在超时发生前有 240 秒(4 分钟)的时间。查看此线程以获取有关此问题的更多信息。

NSMutableURLRequest 不遵守我的 timeoutInterval

于 2010-08-31T17:02:50.733 回答