【问题标题】:How do you catch an UnknownHostException in android?如何在 android 中捕获 UnknownHostException?
【发布时间】:2012-06-26 15:39:05
【问题描述】:
我正在使用 HttpClient 在 Android 中发布然后检索某些内容,效果很好,但是当我没有互联网连接时它会强制关闭,这是他们在制作 HttpPost 时捕获 UnknownHostException 的一种方式吗?我知道我可以在发出请求之前确保它已连接到互联网,但如果手机没有服务怎么办?
【问题讨论】:
标签:
java
android
http-post
httpclient
【解决方案1】:
UnknownHostException 是 IOException 的子类,因此您应该能够捕获/管理它,只需捕获 IOException 或更具体的东西(NoRoute、ConnectTimeout 等)
还可以考虑在使用ConnectivityManager进行网络调用之前添加连接检查
【解决方案2】:
你可以检查你的互联网连接
ConnectivityManager cm = (ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected() || cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()) {
//connected
} else {
//not connected
}
并在AndroidManifest中设置权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>