timeoutIntervalForRequest

timeoutIntervalForRequest

有了新的NSURLSession,NSURLSessionConfiguration对象上现在有了一个timeoutIntervalForRequest来创建 session 。

但是NSURLRequest对象上仍然有一个timeoutInterval,可用于在 session 中创建NSURLSessionTask。

我的问题是,如果配置中将timeoutIntervalForRequest设置为30,但是用于创建任务的NSURLRequest使用的timeoutInterval为60,那么实际上将使用哪个超时间隔?

最佳答案

作为对iOS 7.0.3的调查,与timeoutInterval一起使用时,NSURLRequestNSURLSession不会产生任何影响。

无论您是否为timeoutIntervalForRequest设置NSURLSessionConfigurationtimeoutInterval都将被忽略。

您可以使用我的微型示例应用程序NetworkTimeoutSample来检查此行为。

当您为“URLReq”字段设置1(影响timeoutIntervalNSURLRequest)时,然后单击“带有URLRequest的NSURLSession”按钮,您的 session 将不会发生超时错误。

如果您想为timeoutIntervalForResourcetimeoutIntervalForRequest获得相同的超时效果,您也可能会认识到应该将NSURLSession而不是timeoutInterval设置为NSURLRequest

如果同时为timeoutIntervalForRequest设置timeoutIntervalForResourceNSURLSessionConfiguration值,则较小的值将受到影响(我认为此行为与当前API文档不同)。

没有关于这些规范的文档,因此在将来的iOS版本中可能会进行更改。

关于ios - NSURLSessionConfiguration timeoutIntervalForRequest与NSURLSession timeoutInterval,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19688175/

10-10 04:54