如何将连接超时设置为NSUrlConnection

时间:2013-06-23 16:40:21

标签: ios cocoa nsurlconnection

我知道NSMutableURLRequest有一个setTimeoutInterval方法,但是我可以将特定超时设置为到达和连接服务器所需的时间吗?

2 个答案:

答案 0 :(得分:2)

不,你不能。超时是我们期望服务器回复的时间。我们不知道连接到服务器的时间和服务器的回复时间。

答案 1 :(得分:1)

如果连接“空闲”的时间超过通过NSURLConnection设置的指定持续时间,则setTimeoutInterval将中止连接超时错误。

这意味着,如果您启动请求并且客户端到目前为止没有从服务器收到任何内容,那么在该持续时间之后,您应该在connection:didFailWithError:内收到超时错误。

这也意味着,如果您正在发送/接收数据的连接中间,并且服务器稍后挂起并且连接变为“空闲”的时间超过指定的超时,则它也将中止连接。

每当连接有一些进展时,计时器将被重置。

到目前为止,您可以调整该行为,以便启动自己的计时器,在特定的持续时间后将cancel发送到连接。可能您可能会监控进度并估计请求完成所需的时间,然后可能会调用取消,如果这需要很长时间。