我最近将我的应用上传到了 Google Playstore。我使用错误报告器来跟踪崩溃。应用程序运行良好,但我经常收到HttpHostConnectException。在进行每次网络通话之前,我都会检查 Internet 连接。导致此异常的原因还有其他原因吗?如何避免?
PS 在测试/调试我的应用程序时,我从来没有遇到过这个异常。
我最近将我的应用上传到了 Google Playstore。我使用错误报告器来跟踪崩溃。应用程序运行良好,但我经常收到HttpHostConnectException。在进行每次网络通话之前,我都会检查 Internet 连接。导致此异常的原因还有其他原因吗?如何避免?
PS 在测试/调试我的应用程序时,我从来没有遇到过这个异常。
我使用AsyncHttpClient来处理我所有的网络电话。它完美地处理了我的情况。它在获取 HttphostConnectException 时直接使用 onFailure()。
当无法与特定端口上的远程主机建立连接时,将引发HttpHostConnectException 。
在进行每次网络通话之前,我都会检查 Internet 连接。
检查 Internet 连接并不是确定主机是否可访问的完整方法。在许多情况下,例如使用 wifi,设备连接到您的路由器,而路由器未连接到互联网。在这种情况下,使用ConnectivityManager之类的类检查 Internet 连接返回 true,但实际连接为 false。
解决方案是检查您的主机是否可以使用任何 http 方法实际访问。
public boolean isInternetAvailable() {
try {
InetAddress ipAddr = InetAddress.getByName("google.com"); //You can replace it with your name
if (ipAddr.equals("")) {
return false;
} else {
return true;
}
} catch (Exception e) {
return false;
}
}
上面的代码取自这个SO post。