【问题标题】:When does an NSURLRequest time out?NSURLRequest 什么时候超时?
【发布时间】:2013-07-31 17:17:42
【问题描述】:

Cocoa 中的NSURLRequest 类(iOS docsOS X docs)有一个timeoutInterval 属性。文档状态

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

这里的“空闲”是什么意思?据我所知,这实际上意味着如果我设置 30 秒 timeoutInterval 并调用发送 NSURLRequest 的方法,那么如果 HTTP 响应的正文在发送后 30 秒没有返回请求,请求超时。但这真的是怎么回事吗?

我能想到的几件事可能会触发空闲计时器重置:接收 HTTP 标头或接收部分正文。但现实中哪一个(如果有的话)重要?

【问题讨论】:

    标签: ios objective-c macos cocoa http


    【解决方案1】:

    30 秒内未收到任何字节是正常定义。您应该能够编写一个非常简单的 HTTP 服务器(到处都有示例项目)并在私有端口上运行它,然后连接到它以向自己证明。

    要在您的服务器中模拟超时,只需在您向客户端承诺的字节中添加“40”或一些常量,这样客户端将永远等待最后 40 字节的额外字节,这些字节永远不会到来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 2012-04-22
      • 2012-08-07
      • 2012-04-05
      相关资源
      最近更新 更多