OC-开发案例收集

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

2016-04-01  本文已影响1445人  liyoro

通常都是使用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
上一篇下一篇

猜你喜欢

热点阅读