gpt4 book ai didi

swift - 取消 Alamofire.request 不起作用(Swift)

转载 作者:行者123 更新时间:2023-11-28 11:01:40 27 4
gpt4 key购买 nike

我有一个使用 Alamofire 将 base64 字符串上传到服务器的功能,我希望用户能够取消上传。

我目前正在尝试使用 .cancel(),但我想我使用这个方法的方法不正确,因为它不会取消发出的请求。

代码:

var uploadVerificateRequest: Alamofire.Request?

func uploadVerificate(_ pdf: Data, completionHandler: @escaping (_ result: [String: AnyObject]) -> ()) {
var jsonData: [String: AnyObject]?

let PDFBase64 = pdf.base64EncodedString()

let verificateParameters = [
"Base64Image": PDFBase64
] as [String : Any]

self.uploadVerificateRequest = Alamofire.request(URL, method: .post, parameters: verificateParameters)
.responseJSON { (response) -> Void in

if let value = response.result.value {
let json = value as! [String: AnyObject]

jsonData = json

if let jsonData = jsonData {
completionHandler(jsonData)
}
else {
completionHandler([:])
}
}
}
}

func cancelUploadVerificate() {
self.uploadVerificateRequest?.cancel()
}

有什么建议吗?

最佳答案

经过一些测试找到了一个似乎有效的解决方案:

func cancelUploadVerificate() {
self.uploadVerificateRequest.session.getAllTasks { tasks in
tasks.forEach { $0.cancel() }
}
}

关于swift - 取消 Alamofire.request 不起作用(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40428989/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com