Swift网络框架Alamofire超时时间设置以及取消网络请求设置

zxc1993qwe 2018-02-07 10:38:53
Alamofire的默认超时时间是30秒,我需要设定自己的超时时间

在自己的二次封装类里面设置一个全局manager

var sessionManager:Alamofire.SessionManager!
然后通过获取URLSessionConfiguration设置超时时间

let configuration = URLSessionConfiguration.default

configuration.timeoutIntervalForRequest = 10(超时时间)

sessionManager = Alamofire.SessionManager(configuration: configuration)
如果在上面一步直接let sessionManager = Alamofire.SessionManager(configuration: configuration)然后去利用sessionManager.request请求是不能使用的。



有些界面,我们在退出之后是不希望它还继续网络请求的,所以在退出的时候,我希望它能直接取消掉网络请求

sessionManager.session.getAllTasks { (tasks) in

tasks.forEach({ (task) in

task.cancel()

})
有时候你也可以指定特定的url进行取消操作

sessionManager.session.getAllTasks { (tasks) in

tasks.forEach({ (task) in

if task.currentRequest?.url?.lastPathComponent != urlstring

{

task.cancel()

}})}
...全文
1685 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧