【发布时间】:2016-12-12 14:29:39
【问题描述】:
情况如下:
- 我的服务器只接受 multipart/form-data 上传操作。
- 我的应用需要实现后台上传。
我在下面尝试过:
如果我忽略
background,我可以使用uploadTaskWithRequest:fromData:,构建所有边界、内容配置和文件数据,然后上传到支持的服务器。我确实成功地做到了这一点。BUT我需要使用后台传输。如果我在后台模式下强制使用此方法,则会出现错误:
Upload tasks from NSData are not supported in background sessions.
1234563不是我需要的。
那么有什么办法可以做到这一点吗?由于服务器无法更改它的支持,我需要后台传输和 multipart/form-data 内容类型。
【问题讨论】:
-
第三点可能表明您的表单数据中存在语法错误。您是否尝试过使用
curl或nc等命令行工具上传这些数据? -
@macmoonshine 问题是,我使用
fromData方法成功上传了我的文件,我通过代码生成了所有多部分数据。并使用fromFile方法,你不需要生成数据,那我为什么要测试这个data或者我怎么测试data。我记录了请求,fromFile方法甚至没有发送任何正文数据、正文流和内容长度,那么,为什么这个方法存在......或者应该通过代码构建一些其他的东西?文档或演示在哪里?... -
该文件应该包含您的表单数据,您应该使用
curl测试这个文件。很抱歉造成混乱。 -
@macmoonshine 谢谢,但这似乎是 NSURLSession 的错误,我通过使用 AF 方便的方法将上传文件写入临时文件来解决这个问题。 see
标签: objective-c multipartform-data background-task