新增内容配置参数有关uploadTask使用URLSession和URLRequest

问题描述 投票:0回答:1

我使用URLSession“uploadTask从文件”

func uploadTask(with request: URLRequest, fromFile fileURL: URL) -> URLSessionUploadTask

几乎一切工作正常,但现在我们的服务器需要额外的PARAM为“uploadKey”与文件名一起的内容部署传递。

这可以通过生成添加了像我们通常做的内容部署多的要求来完成。

我想补充它,而使用“uploadTask从文件”,以避免内存压力。请建议如何做到这一点。

nsurlsession nsurlrequest content-disposition urlsession urlrequest
1个回答
0
投票

从阅读的问题,我怀疑你巧妙地误解任务做(不幸的是,苹果公司的文档需要在这方面,这于事无补一些严重的改进)什么上传。这些任务不上传在Web浏览器中会如果您在上传表单选择一个文件的方式的文件。相反,他们所使用的文件上传请求的主体。我认为他们默认提供基于文件名,虽然我不能确定一个理智的内容类型,但他们没有在形式上编码发送数据。

因此,假如我完全理解这个问题,你的选择是要么:

  1. 继续使用多编码。可选写多体到一个文件中,而不是将它保持在内存中,使用上传任务可以从文件而不是从一个NSData对象提供身体。
  2. 上传你想送,未编码的,因为上载体的全部文件,并提供您所需要的任何额外参数的URL本身GET参数的形式提供。
  3. 使用一些其它编码像JSON或协议缓冲区。

无论哪种方式,服务器端的代码将确定这些方法的支持。如果你可以修改服务器代码,那么我会建议使用第二种方法。它要稍微比第一种方法更有效,比JSON更有效,也更容易比任何其他方法来实现。

© www.soinside.com 2019 - 2024. All rights reserved.