美文网首页OC-开发案例收集
Swift检测是否可上网的简单方法

Swift检测是否可上网的简单方法

作者: liyoro | 来源:发表于2016-04-01 17:18 被阅读1445次

    通常都是使用Reachability来检查网络状态的,可以顺利获取到机子是wifi还是3G网络,此库区分网络连接的时候只是简单的查看有没有ip地址,这就造成了连上wifi,但是wifi上不了网的情况下,依然返回网络可连接的结果,这是很蛋疼的!

    检测网络是否连接,可以使用NSURLRequest简单的判断下,以下是方法,基于Swift 2.0的(呵呵,不知道方法会不会变,因为我写这文章的时候变了)

    /**
     *  检测网络是否连接
     */
    func requestUrl(urlString: String) -> Bool {
        let url: NSURL = NSURL(string: urlString)!
        let request: NSMutableURLRequest = NSMutableURLRequest(URL: url)
        request.timeoutInterval = 5
        
        var response: NSURLResponse?
        
        do {
            try NSURLConnection.sendSynchronousRequest(request, returningResponse: &response)
            if let httpResponse = response as? NSHTTPURLResponse {
                if httpResponse.statusCode == 200 {
                    print("response:\(httpResponse.statusCode)")
                    return true
                }
            }
            return false
        }
        catch (let error) {
            print("error:\(error)")
            return false
        }
    }
    

    上面只是一个简单的网络请求方法而已,可以判断机子网络是否真的可以上网。例如以下调用:

    print(requestUrl("https://www.baidu.com/"))
    

    返回如下:

    response:200 
    true
    

    相关文章

      网友评论

        本文标题:Swift检测是否可上网的简单方法

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