我正在使用iOS 7的新版NSURLSessionDataTask本来检索数据,如下所示:
NSURLSessionDataTask
NSURLSession *session = [NSURLSession sharedSession]; NSURLSessionDataTask *dataTask = [session dataTaskWithRequest: request completionHandler: ^(NSData *data, NSURLResponse *response, NSError *error) { // }];
如何增加超时值以避免错误"The request timed out"(在 NSURLErrorDomainCode =中-1001)?
"The request timed out"
NSURLErrorDomain
-1001
我已经检查了NSURLSessionConfiguration的文档,但是没有找到设置超时值的方法。
谢谢您的帮助!
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration]; sessionConfig.timeoutIntervalForRequest = 30.0; sessionConfig.timeoutIntervalForResource = 60.0;
let sessionConfig = URLSessionConfiguration.default sessionConfig.timeoutIntervalForRequest = 30.0 sessionConfig.timeoutIntervalForResource = 60.0 let session = URLSession(configuration: sessionConfig)
timeoutIntervalForRequest并timeoutIntervalForResource指定请求和资源的超时间隔。
timeoutIntervalForRequest
timeoutIntervalForResource
timeoutIntervalForRequest -等待其他数据时使用的超时间隔。每当有新数据到达时,与该值关联的计时器就会重置。当请求计时器达到指定的间隔但未接收到任何新数据时,它将触发超时。 timeoutIntervalForResource -资源请求应允许的最长时间。该值控制放弃之前等待整个资源传输的时间。资源计时器在发起请求时启动,并计数直到请求完成或达到此超时间隔(以先到者为准)。
timeoutIntervalForRequest -等待其他数据时使用的超时间隔。每当有新数据到达时,与该值关联的计时器就会重置。当请求计时器达到指定的间隔但未接收到任何新数据时,它将触发超时。
timeoutIntervalForResource -资源请求应允许的最长时间。该值控制放弃之前等待整个资源传输的时间。资源计时器在发起请求时启动,并计数直到请求完成或达到此超时间隔(以先到者为准)。
基于NSURLSessionConfiguration类的参考