3

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

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

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

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

但是,另一个文档页面在同一标题下声明(背景传输注意事项):

仅支持上传和下载任务(无数据任务)。

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

4

1 回答 1

8

观看 WWDC 2014 视频What's New in Foundation Networking,大约 49 分钟。底线是您现在可以在后台会话中执行数据任务,但它只有在应用程序运行时才能工作。如果应用程序被挂起或终止,它不能执行数据任务,但您可以在收到响应时将其转换为下载任务。(FWIW,我不觉得拥有一个只能在应用程序仍在运行时工作的后台数据任务特别有用。)

我不确定您为什么担心下载与数据任务。让我印象深刻的是,您可以启动一个下载任务,然后进入didFinishDownloadingToURL,查看downloadTask.response.

话虽如此,我不清楚您的更广泛意图是什么。如果您想 ping 您的服务器(例如,查看数据是否可供下载),您通常会为此使用后台获取。

于 2016-05-27T17:31:12.073 回答