import Alamofire // 必要安装Alamofire框架 let reachabilityManager = NetworkReachabilityManager.default reachabilityManager?.startListening(onUpdatePerforming: { status in switch status { case .notReachable: print("没有网络毗连") case .unknown : print("未知网络毗连状态") case .reachable(.ethernetOrWiFi): print("毗连到WiFi网络") case .reachable(.cellular): print("毗连到移动网络") } })在上面的代码中,起首导入Alamofire框架,然后创建一个NetworkReachabilityManager对象。通过给listener属性赋值一个闭包块,监听网络毗连状态的厘革。根据不同的状态,输出相应的提示信息。最后,调用startListening()方法启动监听网络毗连状态的厘革。
必要留意的是,NetworkReachabilityManager类只能检测当前装备的网络毗连状态,不能检测服务器状态。如果必要检测服务器状态,看下面。
检测服务器状态
import Alamofirelet url = "https://www.example.com"Alamofire.request(url, method: .head).response { response in if let statusCode = response.response?.statusCode { if (200...299).contains(statusCode) { print("服务器正常") } else { print("服务器异常") } } else { print("无法毗连到服务器") }}在上面的代码中,起首界说了一个URL,然后利用Alamofire.request()方法发起一个HEAD哀求。通过查抄返回的状态码,判断服务器状态。如果状态码为200到299之间,则表现服务器正常。如果状态码不在这个范围内,表现服务器异常。如果无法毗连到服务器,则输出“无法毗连到服务器”的提示信息。
必要留意的是,Alamofire.request()方法会壅闭当火线程,直到服务器返反相应或发生超时。因此,在实际利用中,可能必要在其他线程或队列中实行此方法,以克制壅闭UI线程。