我正在尝试从服务器获取数据。有时我的代码由于UnknownHostException
. 这是为什么?这个问题的原因是什么?
问问题
7431 次
4 回答
4
如果 DNS 服务器发生故障,则可能会发生这种情况。除了使 DNS 服务器更健壮或寻找另一个服务器之外,您还可以只使用完整的 IP 地址而不是主机名。这样它就不需要根据主机名查找 IP 地址。但是,我宁愿修复 DNS 问题并更喜欢 DNS,因为 IP 地址可能会不时更改。
于 2010-05-25T17:05:08.797 回答
2
AnUnknownHostException
表示指定的主机无法转换为 IP 地址。这很可能是您的 DNS 服务器的问题。
于 2010-05-25T17:06:05.407 回答
1
如果 DNS 解析间歇性失败,请捕获异常并重试,直到获得名称解析。你只能控制,你能控制什么......如果你不能控制/修复 DNS 服务器,让你的应用程序足够强大以处理古怪的 DNS 服务器。
于 2017-08-22T13:04:10.043 回答
0
我也无缘无故地在 Java 中看到零星的 UnknownHostExceptions。解决方法就是重试几次。这是执行此操作的 DocumentBuilder.parse 的包装器:
static Document DocumentBuilder_parse(DocumentBuilder b, String uri) throws SAXException, IOException {
UnknownHostException lastException = null;
for (int tries = 0; tries < 2; tries++) {
try {
return b.parse(uri);
} catch (UnknownHostException e) {
lastException = e;
System.out.println("Retrying because of: " + e);
continue;
}
}
throw lastException;
}
于 2019-04-06T12:13:09.747 回答