4

我有一个非常具体的 Android HTC Rezound 问题,我希望有人能找到解决方案。

在使用 HTC Rezound 并连接到 4g 网络时,我在尝试使用 HttpURLConnection 连接到我们的服务器时收到未知主机异常错误。这个问题的奇怪之处在于,如果手机在 Wi-Fi 或 3g 上,则与服务器的连接可以正常工作。只有4g有问题。我相信问题源于服务器 TTL(生存时间),它设置为 0 秒。不幸的是,更改 TTL 不是一种选择,需要解决方法。

作为测试,我硬编码了主机名的 IP 地址并尝试使用它进行连接,它工作正常。现在,硬编码 IP 地址并不是真正的解决方案,因为服务器使用的是 DNS 级别的循环负载平衡器。我尝试使用 InitAddress 以编程方式检索 IP 地址:

InetAddress inet = InetAddress.getByName(url.getHost());
String ipAddress = inet.getHostAddress();

不幸的是,此解决方法也返回未知主机异常。

我还尝试使用以下方法更改 Java 的内部 DNS 缓存:

     System.setProperty("networkaddress.cache.ttl" , "100"); 

但这也不起作用。

任何其他建议或解决方案将不胜感激!

谢谢你。

4

1 回答 1

1

我遇到了 3g 的问题,因为默认情况下电话机代理的 ISP (其他一切和另一个 isp 都可以正常工作)。尝试检查设备上的连接设置,如果设置了则删除。我希望它有所帮助。

于 2014-08-07T16:33:33.603 回答