NSURLSession在后台,发布和接收来自服务器的响应?

时间:2014-07-17 18:45:47

标签: ios background nsurlsession

我试图了解如何在我的场景中正确使用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对象发送和接收数据。数据任务是   用于从您的应用程序到的简短,通常是交互式请求   服务器。数据任务可以一次一个地将数据返回到您的应用程序   收到每个数据后,或者一次性通过一个数据   完成处理程序因为数据任务不会将数据存储到   文件,后台会话不支持

所以,我离开了下载和上传任务,然后进入文件。我如何实现我的需求?听起来我应该使用上传任务,但我会得到回复数据吗?

1 个答案:

答案 0 :(得分:0)

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

  

使用下载任务上传文件上传文件的正文内容   下载任务,您的应用程序必须提供NSData对象或正文   stream作为NSURLRequest对象的一部分,在创建时提供   下载请求。

     

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

     

下载任务的行为就像数据任务一样,除了方式   将数据返回到您的应用程序。