NSURLRequest setTimeoutInterval 没有按预期工作
Posted
技术标签:
【中文标题】NSURLRequest setTimeoutInterval 没有按预期工作【英文标题】:NSURLRequest setTimeoutInterval does not work as expected 【发布时间】:2012-05-30 06:15:19 【问题描述】:我已将 NSURLRequest 超时间隔设置为 30 秒。而且我还为请求配置了自动重试 3 次。因此,如果请求出现任何问题,则总时间应为 120 秒(即 2 分钟)。
但是当我在我的服务器上保留调试点并且如果我请求服务器然后我的超时时间是 3 分钟。
我可以配置这个超时吗???或者它应该工作??
这是向服务器发出请求后的默认超时间隔吗??
【问题讨论】:
您能否更准确地解释一下手头的问题。 @CodemasterGabriel:我在服务器上保留断点,然后我向服务器请求。我已将 timeoutInterval 设置为 30 秒。我正在重试请求 3 次。所以总共是120秒。现在在第一个请求中,只有我与服务器建立了连接,但由于我的请求已经发出,所以不会有重试。在这种情况下,我必须等待 3 分钟才能出现连接超时错误,而不是 2 分钟。 【参考方案1】:请注意,30 秒乘以 3 等于 90 秒,即一分半钟,而不是 2 分钟。
至于超时问题,尝试用initWithURL:cachePolicy:timeoutInterval:
初始化你的NSURLRequest
。请务必检查您的 NSURLConnection
委托方法的状态,尤其是在 connection:didFailWithError:
中。
另外,也许您应该解释一下如何测量服务器上的超时时间。
【讨论】:
我使用了相同的方法,并且在第一次之后重试了 3 次,所以总共是 2 分钟而不是 90 秒。我检查了状态码,我得到 -1001 作为 kCFURLErrorTimedOut 的状态码。 那么问题出在哪里?您的服务器正在超时,并且回调准确地报告了这一点。 但在所有情况下都需要 3 分钟......所以它是不可配置的吗?还是由操作系统自己处理?? 你的意思是你设置的timeoutInterval
不起作用?您设置了 30 秒,但仅在 3 分钟后失败?这真的很奇怪。再次检查connection:didFailWithError:
是否正确通知您。
我的 timeoutInterval 仅在请求未到达服务器时才有效。但是一旦我的请求命中到服务器,那么 TimeOut 就不受用户的控制。这是真的吗??以上是关于NSURLRequest setTimeoutInterval 没有按预期工作的主要内容,如果未能解决你的问题,请参考以下文章