异步连接的NSURLRequest连接超时行为的说明

时间:2010-11-12 19:20:52

标签: iphone objective-c

我想在我的应用程序中使用NSURLConnection来加载有时需要很长时间的XML响应。现在我在具有大超时的后台线程中使用同步ASIHTTPRequest。我在ASIHTTP(另一天的话题)上遇到了一些问题,所以我希望转而在异步模式下使用NSURLConnection。

我的问题是:当我为NSURLRequest设置超时时,仅在代表收到数据或连接的总超时之前是超时吗?

现在使用ASIHTTP,似乎我的超时是针对整个连接(至少对于同步连接)。有时XML响应太长,连接失败。我想仅为实际连接过程设置超时,其中之后实际下载XML文件将有无限量的时间。我无法找到一个具体的答案,说NSURLConnection以这种方式工作,虽然看起来很可能它可以用于大文件下载。

请提供支持您的答案的链接,谢谢。

1 个答案:

答案 0 :(得分:3)

只有当连接在该时间间隔内空闲时,才会触发NSURLRequest's timeout。所以听起来它会做你想做的事情:

  

如果在连接尝试期间请求保持空闲的时间超过超时间隔,则认为该请求已超时。

另一种方法是简单地让NSTimer在一定时间间隔后触发 - 如果它在您开始接收数据之前触发,请在NSURLConnection上调用cancel