How to check internet connection in alamofire?

前端 未结 8 1147
醉酒成梦
醉酒成梦 2020-11-30 22:55

I am using below code for making HTTP request in server.Now I want to know whether it is connected to internet or not. Below is my code

  let request = Alam         


        
8条回答
  •  日久生厌
    2020-11-30 23:13

      func isConnectedToNetwork()-> Bool {
    
        var zeroAddress = sockaddr_in()
        zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
        zeroAddress.sin_family = sa_family_t(AF_INET)
        let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {
            $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {zeroSockAddress in
                SCNetworkReachabilityCreateWithAddress(nil, zeroSockAddress)
            }
        }
        //Commented code only work upto iOS Swift 2.3
        //    let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {
        //
        //        SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
        //    }
    
        var flags = SCNetworkReachabilityFlags()
        if !SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) {
            return false
        }
        let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
        let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
        return (isReachable && !needsConnection)
    }
        // Call api method
        func callApi(){
            if isConnectedToNetwork() {  // Network Connection status
                // Call your request here
            }else{
                //"Your Internet connection is not active at this time."
            }
        }
    

提交回复
热议问题