取消请求Alamofire

编程入门 行业动态 更新时间:2024-10-26 08:27:19
本文介绍了取消请求Alamofire的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在发送一个基于计时器触发的请求。但是,如果我按下后退按钮,该请求似乎仍然处于活动状态,并且响应反过来使应用程序崩溃。请提出一种取消请求的方法。

I am sending a request which is triggered based on timer. But if I press the back button the request still seems to be active and the response in turns crashes the app. Kindly suggest a way to cancel the request.

使用Xcode 8.2.1 Swift 3

Using Xcode 8.2.1 Swift 3

这是示例请求:

Alamofire.request(path!, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: createHeader()).responseJSON { response in switch response.result { case .success(let data): success(data as AnyObject?) case .failure(let error) : failure(error as NSError) } }

甚至尝试使viewDidDisappear上的计时器无效,但无济于事。

Even tried invalidating the timer on viewDidDisappear but to no help.

谢谢!

推荐答案

Alamofire 4 / Swift 3 / Xcode 8

您可以取消单个请求 >如下所示:

1-首先收到请求:

let request = Alamofire.SessionManager.default.request(path!, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: createHeader()).responseJSON { response in switch response.result { case .success(let data): success(data as AnyObject?) case .failure(let error) : failure(error as NSError) } }

2-然后,在您的 viewDidDisappear 中,只需调用:

2 - Then, in your viewDidDisappear, just call:

request.cancel ()

您可以取消所有请求,如下所示:

You can cancel all requests as below:

Alamofire.SessionManager.default.session.getTasksWithCompletionHandler { (sessionDataTask, uploadData, downloadData) in sessionDataTask.forEach { $0.cancel() } uploadData.forEach { $0.cancel() } downloadData.forEach { $0.cancel() } }

更多推荐

取消请求Alamofire

本文发布于:2023-11-26 03:26:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1632445.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Alamofire

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!