我有通過Alamofire要求用base64上傳一個字符串到服務器的功能,希望用戶能夠取消上傳。取消Alamofire.request不工作(SWIFT)
我目前正在與.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()
}
有什麼建議?
另一件事,在調用cancel()後打印self.uploadVerificateRequest.task時,我收到「<__ NSCFLocalDataTask:0x7fcdcee1d2b0> {task標識符:8} {取消}「,所以cancel()調用本身似乎工作,但請求仍然繼續運行。 – drante