我有一个非常具体的安卓HTC Rezound问题,希望有人能够提供解决方案。
在连接4G网络的情况下,使用HttpURLConnection尝试连接服务器时,我会收到未知主机异常错误。这个问题的奇怪之处在于,如果手机连接Wi-Fi或3G,则可以完美地连接到服务器。只有4G出现这个问题。我认为这个问题源于服务器的TTL(生存时间),它被设置为0秒。不幸的是,更改TTL不是一个选项,需要一种解决方法。
作为一个测试,我硬编码了主机名的IP地址,并尝试使用它进行连接,这样可以正常工作。现在,硬编码IP地址并不是一个真正的解决方案,因为服务器正在使用DNS级别的轮询负载平衡器。我尝试使用InitAddress从程序中检索IP地址:
但是这个方法也没有起作用。 如果有其他建议或解决方案,将不胜感激! 谢谢。
在连接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");
但是这个方法也没有起作用。 如果有其他建议或解决方案,将不胜感激! 谢谢。