Alamofire取消网络请求

背景:

         项目里的发布图文的一个需求,在点击完发布按钮后发布过程中,取消当前发布内容。项目使用网络请求是Alamofire框架,在Alamofire的基础上用RXSwift写了一套网络管理工具。基层类Provider。因为每个网络请求都是有一个sessionManage来管理,先创建requestData,然后检查各种param,处理block,token等,再resume开启这个请求,然后这个请求就作为一个task由sessionManager管理,因此可以拿到sessionManager就可以找到对应的task,来取消网络请求。

实现:

注意:要拿到当前网络的sessionManager

    ///取消当前sessionManager下所有的请求

    func cancleAllRequest() -> () {

        manager.session.getAllTasks{ (urlSessionTask)in

            urlSessionTask.forEach({ (task)in

                task.cancel()

            })

        }

    }


    ///取消当前sessionManager下某个请求

    func cancleRequest(path:String) -> () {

        manager.session.getAllTasks{ (urlSessionTask)in

            urlSessionTask.forEach({ (task)in

                iftask.currentRequest?.url?.path== path {

                    task.cancel()

                }

            })

        }

    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容