作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个常用代码来向服务器发出 HTTP 请求。
HttpClient httpclient = new DefaultHttpClient();
...
HttpGet httpGet = new HttpGet(finalUri.toURI());
httpGet.addHeader("Accept", "text/xml");
response = httpclient.execute(httpGet);
当有互联网连接时,这可以正常工作。但是,当没有互联网连接时,代码只会在 httpclient.execute(httpGet);
处等待很长时间,直到超时并引发异常并使应用程序崩溃。
01-10 15:17:48.612 20692-20806/com.somepackage.somepackage E/EXCEPTION﹕ Unable to resolve host "myapi.myhost.com": No address associated with hostname
对于异常,我可以捕获 UnknownHostException e
并处理它。但仍然有办法预先知道互联网连接丢失吗?
最佳答案
您可以使用 NetworkInfo 来达到此目的。
private boolean checkNetworkConnection() {
NetworkInfo networkInfo = ((ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (networkInfo == null || !networkInfo.isConnected()) {
return false;
} else {
return true;
}
}
关于java - 如何在发出请求之前检查互联网连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27875712/
我是一名优秀的程序员,十分优秀!