ios NSURLConnection随机返回超时错误

时间:2013-03-15 15:59:54

标签: ios xcode

我一直在看这个问题一段时间,似乎无法在google和ios文档的任何地方找到解决方案。

我的应用发送3个异步请求。前两个从主线程调用,最后一个从另一个线程调用,按此顺序。它们是一个接一个地发送的,但它们之间的延迟相对较小。

//build the request url
NSURL *defaultResultsURL = [self getDefaultResultsURL];

//create the request
NSMutableURLRequest *request = 
    [NSMutableURLRequest requestWithURL:defaultResultsURL
        cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
        timeoutInterval:MAX_TIMEOUT_BACKEND];

//invoke requestAllDefaultResults for all elements - invoke on main thread
defualtsResponse = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
[defualtsResponse scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[defualtsResponse start];

问题在于,有时候,并非所有时间,只在我正在测试的其中一个iPhone上,并且只有在首次安装应用程序时,第一个请求才会在不到5秒的时间内返回超时错误,这是指定的请求超时。

我已经检查了后端服务器,我发现收到了所有三个请求并且回复了响应。

我确实尝试在使用

发送请求之前检查当前线程是否正在运行
if([NSThread isMainThread]){
  defualtsResponse = [[NSURLConnection alloc] initWithRequest:request delegate:self];

}

但我仍然遇到超时错误。

0 个答案:

没有答案