当前位置: 首页 > 面试题库 >

NSURLSession:如何增加URL请求的超时时间?

东方玉泽
2023-03-14
问题内容

我正在使用iOS 7的新版NSURLSessionDataTask本来检索数据,如下所示:

NSURLSession *session = [NSURLSession sharedSession];

NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:
request completionHandler:
^(NSData *data, NSURLResponse *response, NSError *error) {
//
}];

如何增加超时值以避免错误"The request timed out"(在 NSURLErrorDomainCode =中-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)

文档怎么说

timeoutIntervalForRequesttimeoutIntervalForResource指定请求和资源的超时间隔。

timeoutIntervalForRequest
-等待其他数据时使用的超时间隔。每当有新数据到达时,与该值关联的计时器就会重置。当请求计时器达到指定的间隔但未接收到任何新数据时,它将触发超时。

timeoutIntervalForResource
-资源请求应允许的最长时间。该值控制放弃之前等待整个资源传输的时间。资源计时器在发起请求时启动,并计数直到请求完成或达到此超时间隔(以先到者为准)。

基于NSURLSessionConfiguration类的参考



 类似资料:
  • 我使用NiFi中的QueryCassandra处理器从Cassandra中获取数据,但是我的查询得到的是TimedoutException。我希望在从处理器运行CQL查询时增加请求超时时间。有没有办法做到这一点,否则我将不得不编写一个自定义处理器?

  • 我正在处理一个Python金字塔rest api,在其中一个请求中,我需要处理一个excel,每一行我都会得到GPS坐标并进行大量验证,这意味着这个请求可能只需要大约10分钟的处理时间,我需要用json向调用方返回一个响应。我不能通过WebSocket发送任何其他内容。 我的问题是:如何增加此请求的超时?这是我的方法: 谢谢任何帮助

  • 我正在使用Kafka和Spring Listener。下面是一段代码。过去,我们发布了超过10万条消息来测试主题,系统似乎运行良好。但几天前,我更改了消费者的groupId。之后,这个新消费者尝试从一开始就处理所有消息,这需要花费大量时间。但过了一段时间(10秒),经纪人会启动消费者。所以结果没有kafka寄存器来侦听消息。 Kafka消费者配置: 然后,我使用cli通过以下命令读取消息并观察到相

  • 我有JMS队列消息处理器序列,其中请求被发送到SOAPendpoint。但是,对此endpoint的请求可能需要很长时间,最多30分钟左右。如何配置ESB以允许长超时值?目前,我在60秒后得到以下错误: 谢谢你的帮助 编辑:我在repository/conf/passthru-http.properties中添加了http.socket.timeout=1800000-property,这似乎解决

  • 问题内容: 如何增加交易超时时间?我想上传视频,但是没有上传大尺寸的视频? 引发错误 问题答案: 您需要在php.ini中更改一些设置: