我将这个 NSURLConnection 与代表一起使用。
nsconnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self startImmediately:YES];
问题是网站根本没有响应。什么都没有,只是在空白页面的浏览器中旋转,没有失败。在我的代表中,我处理失败,但是当站点没有响应时,代表不会被调用。关于如何使连接超时的任何想法?
我将这个 NSURLConnection 与代表一起使用。
nsconnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self startImmediately:YES];
问题是网站根本没有响应。什么都没有,只是在空白页面的浏览器中旋转,没有失败。在我的代表中,我处理失败,但是当站点没有响应时,代表不会被调用。关于如何使连接超时的任何想法?
您可以在NSURLRequest
对象中指定超时。一种方法是通过requestWithURL:cachePolicy:timeoutInterval:
方法构造它。NSURLRequestUseProtocolCachePolicy
(如果您不想担心那部分,可以传入默认的cachePolicy 参数。)超时是以秒为单位的浮点值,iPhone SDK 中的所有时间间隔基本上都是如此。
还要确保您NSURLConnection
的委托已设置并响应该connection:didFailWithError:
方法。连接总是调用此方法或connectionDidFinishLoading:
在连接完成时调用。
编辑:这个答案现在已经过时了,但在回答的日期是准确的。
我知道这个线程很旧,但我也遇到了这个问题。这发生在在服务所在的内部网络之外测试应用程序时。该服务最终会超时,但 Apple 要求在超时发生前有 240 秒(4 分钟)的时间。查看此线程以获取有关此问题的更多信息。