【问题标题】:NSURLRequest Timeout IOSNSURLRequest 超时 IOS
【发布时间】:2012-07-30 09:00:34
【问题描述】:

我需要使用 UIRequest 设置超时 15 秒或 30 秒,但它总是采用默认值。有什么方法可以设置连接的最小超时时间。

【问题讨论】:

标签: iphone ios ipad nsurlconnection nsurlrequest


【解决方案1】:

This answer 解释了NSURLRequest 对象的timeoutInterval 的最小值。如果您需要一个较小的值,那么您可以使用所需的时间启动一个 NSTimer,并在计时器的触发方法中取消您的 NSURLConnection 对象的连接。如:

//....
connection = [[NSURLConnection connectionWithRequest:request delegate:self] retain];
[request release];

[connection start];

if (timer == NULL) {

    timer = [NSTimer scheduledTimerWithTimeInterval: TimeOutSecond
                                             target: self
                                           selector: @selector(cancelURLConnection:)
                                           userInfo: nil 
                                            repeats: NO];
    [timer retain];
}


- (void)cancelURLConnection:(NSTimer *)timerP {
    [connection cancel]; //NSURLConnection object
    NSLog(@"Connection timeout.");
    [timer invalidate];
}

【讨论】:

    【解决方案2】:

    在构建时设置超时间隔属性似乎有问题:

    NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:240.0];
    

    而是在构造之后设置它:

    request.timeoutInterval = 70;

    另请注意,您可以设置多低的间隔似乎有一些限制。阅读这篇文章了解更多信息: https://devforums.apple.com/message/108087#108087

    【讨论】:

    • 如果我将超时设置为超过 240,它工作正常。我需要不到 240 秒。
    • 240 似乎是接受的最低值(请参阅上面答案中的链接)。但是,有些人通过在构建后设置超时间隔来报告成功(也许在这种情况下规则不是强制的)。但这在未来可能会改变。也许你应该考虑另一种方法。在慢速蜂窝网络上 15 秒可能会有问题...
    • 在 iOS7 和 iOS8 中你可以设置任何你想要的值。默认为 60 秒
    • @AndrewBennett:我可以在 ios 7 和 8 中设置任何范围的超时值,但不坚持指定的值。假设我设置了 180 秒的超时间隔,didFailWithError: 会在 75 到 220 秒的范围内被触发,并且比这更大一些,但不是在 180 秒的间隔内。我正在使用 POST 方法进行异步 Web 服务调用。对此有什么想法吗?
    【解决方案3】:

    我相信 POST 请求的超时最小值为 4 分钟。最安全的方法是启动NSTimer 并在超时触发时取消请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多