如何使用 NSURLConnection (NSMutableRequest) 超时
Posted
技术标签:
【中文标题】如何使用 NSURLConnection (NSMutableRequest) 超时【英文标题】:how to use NSURLConnection (NSMutableRequest) timeout 【发布时间】:2011-11-16 05:51:07 【问题描述】:如果在 5 秒或 10 秒(特定时间段)后未收到响应(或未调用连接委托方法),我想使连接超时或使连接无效或显示“连接超时”的警报)。有人对此有解决方案吗?
【问题讨论】:
【参考方案1】:确保您的NSURLConnection's
委托已设置并响应connection:didFailWithError:
方法。连接总是在连接完成时调用此方法或connectionDidFinishLoading:
。
connection:didFailWithError:
收到您的超时,因此您可以在此处显示连接已超时
【讨论】:
谢谢史蒂夫。我做了你提到的同样的事情。我已将 NSMutableURLRequest 的超时间隔设置为 5 秒:[NSMutableURLRequestObj setTimeoutInterval:5.0];但 5 秒后,没有任何连接委托方法被调用。我调试了代码(使用断点),发现在 20 或 25 秒后,连接委托方法 didReceiveResponse、didReceiveData 和 connectionDidFinishLoading 被调用。如果在 5 或 10 秒内未收到响应,我想使此类连接无效。你能解释一下我应该如何实现这一目标吗? 你能把你尝试这个的 URL 贴出来吗? 实际上它只是一个本地 URL。您将无法从头到尾做到这一点。服务器不在公共领域。对不起。基本上我想做的是,如果我在 10 秒内没有得到响应,那么我必须向用户显示“连接超时”的警报。 尝试将超时间隔设置为 0.00000001.. 如果它调用 didFailwithError ,那么您的代码没有任何问题并且服务器端有问题。我是这样测试的。这对我来说很好。 Aur baki kuch keh nahi sakta main :P Aapka bahut bahut dhanyawaad 史蒂夫乔布斯“印度人”:) ;) :D以上是关于如何使用 NSURLConnection (NSMutableRequest) 超时的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 NSURlConnection 从 Url 下载图像以保存在手机缓存中