Swift 3 Alamofire 请求进度
Posted
技术标签:
【中文标题】Swift 3 Alamofire 请求进度【英文标题】:Swift 3 Alamofire Request Progress 【发布时间】:2018-09-06 10:42:52 【问题描述】:我有这种代码
let req = Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers)
req.downloadProgress (progress) in
print("progess!", Float(req.progress.fractionCompleted))
req.responseJSON response in
if response.result.isSuccess
print(response.result.value!)
else
print(response.result.error!)
结果没有给我进步。它只是返回1.0
,就是这样,但我需要这个请求的进度。
请有人帮助我。
【问题讨论】:
你想显示上传进度吗? @MaheshDangar 是的 那么你附加的 multipartFormData 在哪里? 看看这篇文章,这将有助于实现你想要的:- ***.com/questions/38888559/… 【参考方案1】:您在使用req.progress.fractionCompleted
时犯了一个错误。请改用progress.fractionCompleted
。
let req = Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers)
req.downloadProgress (progress) in
print("progess!", Float(progress.fractionCompleted))
req.responseJSON response in
if response.result.isSuccess
print(response.result.value!)
else
print(response.result.error!)
【讨论】:
【参考方案2】:在主队列中添加进度
request?.downloadProgress(queue: .main,closure: progress in
self.downloadProcess.text = "Download \((progress.fractionCompleted*100))% completed"
print(self.downloadProcess.text)
if #available(ios 11.0, *)
else
// Fallback on earlier versions
)
【讨论】:
以上是关于Swift 3 Alamofire 请求进度的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift4 中使用 Rxalamofire 发送 URL 请求
Alamofire 4/Swift:进度处理程序不再提供 bytesRead 和 totalBytesRead?
Swift 3 - 不能使用数组提出的 Alamofire 请求