我有一个非常具体的 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");
但这也不起作用。
任何其他建议或解决方案将不胜感激!
谢谢你。