【问题标题】:how to use NSURLConnection (NSMutableRequest) timeout如何使用 NSURLConnection (NSMutableRequest) 超时
【发布时间】:2011-11-16 05:51:07
【问题描述】:

如果在 5 秒或 10 秒(特定时间段)后未收到响应(或未调用连接委托方法),我想使连接超时或使连接无效或显示“连接超时”的警报)。有人对此有解决方案吗?

【问题讨论】:

    标签: iphone objective-c


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 2010-11-28
    • 2012-06-06
    • 2011-12-09
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多