android – HttpURLConnection getResponseCode()如果没有Internet连接则不返回

我使用HttpURLConnection通过使用以下代码检查服务器URL是否可用:
try {
    boolean connectionFailed = false;
    URL kNownURL = new URL("http://www.google.com");
    httpconnection = (HttpURLConnection) kNownURL.openConnection();
    httpconnection.setConnectTimeout(5000);
    responseCode = httpconnection.getResponseCode();
    if (responseCode != 200)  {
        status = ConnectionStatus.NOT_CONNECTED; 
    }
}
catch(Exception e) {
    connctionFailed = true;
}

代码在正常条件下正常工作.但是当没有Internet连接时(因为路由器断开连接或热点连接),httpconnection.getResponseCode()不会被执行(函数不会返回).我怎样才能解决这个问题?

解决方法

httpconnection.setConnectTimeout(5000)
是连接超时.

这不是httpconnection.getResponseCode()的超时.

如果添加httpconnection.setReadTimeout(2000),httpconnection.getResponseCode()应在没有可用连接时抛出异常.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...