0

我最近将我的应用上传到了 Google Playstore。我使用错误报告器来跟踪崩溃。应用程序运行良好,但我经常收到HttpHostConnectException。在进行每次网络通话之前,我都会检查 Internet 连接。导致此异常的原因还有其他原因吗?如何避免?

PS 在测试/调试我的应用程序时,我从来没有遇到过这个异常。

4

2 回答 2

0

我使用AsyncHttpClient来处理我所有的网络电话。它完美地处理了我的情况。它在获取 HttphostConnectException 时直接使用 onFailure()。

于 2014-09-20T12:32:43.083 回答
0

当无法与特定端口上的远程主机建立连接时,将引发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

于 2014-09-17T07:48:34.103 回答