我有一个功能,通过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()
}
有什么建议吗?
答案 0 :(得分:3)
找到一个似乎在经过一些测试后可以工作的解决方案:
RssListPresenter
答案 1 :(得分:0)
在任务上调用取消:
.top
答案 2 :(得分:0)
我认为你应该尝试这样的事情:
self.uploadVerificateRequest = Alamofire.request(URL, method: .post, parameters: verificateParameters)
self.uploadVerificateRequest.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([:])
}
}
}