美文网首页
Alamofire取消网络请求

Alamofire取消网络请求

作者: 热望与美梦 | 来源:发表于2018-08-08 15:44 被阅读0次

    背景:

             项目里的发布图文的一个需求,在点击完发布按钮后发布过程中,取消当前发布内容。项目使用网络请求是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()

                    }

                })

            }

        }

    相关文章

      网友评论

          本文标题:Alamofire取消网络请求

          本文链接:https://www.haomeiwen.com/subject/ugravftx.html