NSMutableRequest 和 NSURLConnection 的最大超时时间

Posted

技术标签:

【中文标题】NSMutableRequest 和 NSURLConnection 的最大超时时间【英文标题】:Maximum timeOut for NSMutableRequest & NSURLConnection 【发布时间】:2012-06-15 11:57:16 【问题描述】:

我可以在我的应用程序中使用的最大超时间隔是多少。我正在使用以下方法。

(id)initWithURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval;

我正在使用 GET 方法。

谢谢

【问题讨论】:

我不确定是否有最大值。只需尝试 9999999 的 URL 没有响应,一步一步,然后检查是否存在最大值... 为什么你需要一个非常大的超时时间,就用 300 之类的东西 【参考方案1】:

NSTimeInterval 数据类型是 double 数据类型的 typedef,因此支持的最大超时值是 double 数据类型的最大值。

【讨论】:

【参考方案2】:

我认为您应该考虑到 HTTP 使用 TCP。 TCP 连接不仅由您的应用程序控制,在您的应用程序和服务器之间还有许多路由器和防火墙。

我查看了典型的防火墙文档,只是为了了解 TCP 连接的默认超时时间。

对于思科来说是一小时。

http://www.cisco.com/c/en/us/td/docs/security/asa/asa91/configuration/firewall/asa_91_firewall_config/conns_connlimits.html#42354

因此,在决定最大连接超时时间时,也许您应该考虑这些信息。

另请参阅此处的第 5.5 节:https://www.rfc-editor.org/rfc/rfc6202 他们声称最佳做法是 30 秒。

【讨论】:

以上是关于NSMutableRequest 和 NSURLConnection 的最大超时时间的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 NSURLConnection (NSMutableRequest) 超时

无法使用类型的参数列表调用“dataTask”(使用:NSMutableRequest,...)

NSMutableRequest 对象主体的分配数据未释放

对 NSMutableRequest 的 PHP Json 请求!帮助?

在 NSMutableRequest 的正文中发送 JSON 格式的 NSDate

4 AFURLRequestSerialization