我想发送一个HTTP请求,其中包含由两个段组成的多部分正文数据:
这可以很容易地完成,如answer中所述。但是在文件可能很大的情况下会发生什么?使用这个新约束,我们自然无法将数据封装在NSData
对象中,因为它会占用大量内存资源。
熟悉NSURLRequest
类的人的第一个想法是使用HTTPBodyStream
属性而不是HTTPBody
。但是如何才能获得一个可以写入JSON和文件数据段的流(以及边界和其他所需的HTTP内容)?
出路是NSInputStream
的子类。事实上,我注意到AFNetworking框架使用了这种方法。但是从我听说过,有很多未记录/奇怪的方法可以覆盖NSStream
类,如here所述,我认为这听起来很多(有潜在危险) )工作需要实现一些看似简单的事情。
有没有办法达到预期的行为?请考虑以下限制:
答案 0 :(得分:1)
您可以使用我的开源POSInputStreamLibrary。它提供了流式传输所需数据的功能。您唯一需要做的就是实现POSBlobInputStreamDataSource协议并将实现用作POSBlobInputStream的参数。
如果您严格限制使用第三方框架,则可以使用POSBlobInputStream作为实现私有API方法的示例,以使自定义NSInputStream可用。
随时提出有关实施细节和好运的任何问题。