【问题标题】:NSURLSession in background, posting and receiving response from server?NSURLSession 在后台,发布和接收来自服务器的响应?
【发布时间】:2014-07-17 18:45:47
【问题描述】:

我正在尝试了解如何在我的场景中正确使用 NSURLSession,阅读规范,需要更多说明。 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/URLLoadingSystem/Articles/UsingNSURLSession.html#//apple_ref/doc/uid/TP40013509-SW1

我的服务器 API 非常简单。我使用 protobufs 进行数据通信和消息负载非常小,周转非常快。从数据的角度来看,它只是传输的纯二进制数据。 服务器仅支持 POST 请求并以数据响应。

所以,它是这样的: - 带有自定义标头和二进制有效负载的 POST 请求 - 服务器以消息和二进制负载响应(响应也可能包括自定义标头)

从我在文档数据任务中看到的正是我所需要的,但他们说

数据任务使用 NSData 对象发送和接收数据。数据任务是 用于从您的应用程序向 服务器。数据任务可以一次将数据返回到您的应用程序 在接收到每条数据之后,或者通过一个 完成处理程序。因为数据任务不会将数据存储到 文件,后台会话不支持它们

所以,我留下了下载和上传任务,它们进入了一个文件。我如何去实现我所需要的?听起来我应该使用上传任务,但我会得到响应数据吗?

【问题讨论】:

    标签: ios background nsurlsession


    【解决方案1】:

    好的。我决定不删除我的问题,以防其他人需要此信息。 相同的文档文章说:

    使用下载任务上传文件 下载任务,您的应用必须提供一个 NSData 对象或一个主体 流作为创建时提供的 NSURLRequest 对象的一部分 下载请求。

    如果您使用流提供数据,您的应用必须提供 URLSession:task:needNewBodyStream: 提供新的委托方法 身份验证失败时的正文流。这种方法是 在“使用流上传正文内容”中进一步描述。

    下载任务的行为就像一个数据任务,除了在 将哪些数据返回到您的应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      相关资源
      最近更新 更多