后台会话中的NSURLSessionDataTask

我想做一个空的POST请求,并阅读响应头,而我的iOS应用程序在后台。 查看文档,明确指出上传和下载任务在后台支持,但有两个问题:

  1. 我不需要上传内容,所以我不想创build一个空文件来使用。
  2. 我需要获取标题,所以下载任务不提供必要的委托callback。

这留给我一个NSURLSessionDataTask , 文档指出:

注意:在iOS 8和OS X 10.10之前,后台会话不支持数据任务。

但是, 另一个文档页面以相同的标题(背景传输注意事项)指出:

只支持上传和下载任务(没有数据任务)。

哪个文档页面是正确的? 在后台会话中是否支持NSURLSessionDataTasks 没有数据上传?

请参阅WWDC 2014video基础networking中的新function ,大约49分钟英寸。底线是,您现在可以在后台会话中执行数据任务,但只有在应用程序正在运行时才能使用。 如果应用程序被暂停或终止,则无法执行数据任务,但在接收到响应时可将其转换为下载任务。 (FWIW,我不觉得特别有用的背景数据任务,只能在应用程序仍在运行时工作。)

我不知道为什么你担心下载VS数据任务。 这让我觉得你可以启动一个下载任务,然后在didFinishDownloadingToURL中查看downloadTask.response

说了我不清楚你更广泛的意图是什么。 如果你想ping你的服务器(例如,看看数据是否可以下载),你通常会使用后台获取。