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

通常都是使用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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,534评论 4 61
  • 网络解析:AFNnetworking详解 一、什么事AFN□在iOS开发中,使用比较广泛□全称是AFNetwork...
    Bo_cake阅读 4,363评论 0 1
  • 这几天发生了好几件事情,让我突然想写这样一个题目,我今天也思考了一些问题,我觉得我想象中的朝气蓬勃、意气风发、积极...
    a8828d35e0b8阅读 1,576评论 0 0
  • 前情回顾 刚开始我还老实地窝在他怀里,慢慢地觉得无趣,便仰着头用手摩挲着他青青的下巴。 “胡子都没刮。”我喃喃地自...
    狗一样的污姐阅读 2,895评论 0 3
  • 我想拥抱你,所以哭哭笑笑拥抱了全班 我把桌上的东西全部摔倒地上, 我放大双眼瞪着玻璃中的我, 抱着杂乱的头发, 无...
    面汤同学阅读 1,504评论 0 2

友情链接更多精彩内容