如何使用 alamofire 上传 zip 数据?
Posted
技术标签:
【中文标题】如何使用 alamofire 上传 zip 数据?【英文标题】:How to upload zip data with alamofire? 【发布时间】:2017-02-01 10:33:41 【问题描述】:我尝试使用 Alamofire 上传数据
问题是:如果我尝试从项目上传图片,它可以正常工作,但如果我尝试上传 zip 目录,我得到错误和超时异常
我的代码会产生超时异常
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 10 // seconds
configuration.timeoutIntervalForResource = 10
alamoFireManager = Alamofire.SessionManager(configuration: configuration)
let fileData = FileManager.default.contents(atPath: filePath)
alamoFireManager.upload(fileData,
to: url,
method: .post,
headers: headers)
.validate()
.responseJSON
这是运行良好的代码
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 10 // seconds
configuration.timeoutIntervalForResource = 10
alamoFireManager = Alamofire.SessionManager(configuration: configuration)
let fileURL = Bundle.main.url(forResource: "MyImage", withExtension: "jpg")
alamoFireManager.upload(fileURL,
to: url,
method: .post,
headers: headers)
.validate()
.responseJSON
我尝试将 Data() 传递给 upload request
也尝试传递对 zip dit URL
的引用来上传请求,我也尝试了 InputStream(url: fileURL!)!
但没有成功......
我做错了什么?如何将 zip 数据发送到服务器?
如果有什么问题欢迎提问!
【问题讨论】:
为什么不是扩展名为zip
的zip文件的文件路径?
你使用相同的网址?您的端点可以处理 zip 文件吗?
也许你的 10 秒超时时间也很短
添加这个以查看上传了多少:` .uploadProgress progress in // 默认调用主调度队列 print("Upload progress: (progress.fractionCompleted)") `
您对zip dir
的确切含义是什么?它是一个 zip 文件
【参考方案1】:
最终,我发现了问题,服务器端不接受我的请求。此外,还有一些混乱,因为如果我尝试从我的项目中下载图像文件,它可以工作,但是如果从文档目录中选择该文件,则会出现问题。
无论如何,如果有人遇到类似问题,请尝试检查您的服务器端。
尝试检查您的请求是否到达服务器并包含内容。
【讨论】:
以上是关于如何使用 alamofire 上传 zip 数据?的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 使用 Alamofire 将数据上传到服务器
如何在 Alamofire 中上传文件并在参数中传递数据 - swift 5