gpt4 book ai didi

java - 当 DNS 无法访问时 URLConnection.setConnectTimeout() 不起作用

转载 作者:行者123 更新时间:2023-12-01 11:58:18 25 4
gpt4 key购买 nike

这是我的代码:

URL u = new URL("http://www.google.com");
URLConnection conn = u.openConnection();
conn.setConnectTimeout(3000);
conn.connect();

我的网络连接有时不稳定(我已连接到无线路由器,但实际上我的路由器无法访问互联网)。当这种情况发生时,这段代码将阻塞一段时间,并最终抛出UnknownHostException。为什么 setConnectTimeout(3000) 在这种情况下不起作用?如何解决这个问题?谢谢!

------------更新----------------

我的猜测是 conn.connect() 将首先查询 DNS,但此操作没有时间限制。我已经尝试过 Socket 类,但问题仍然存在。 setTimeout() 似乎不适用于 DNS 查询。

最佳答案

我找到了一个可以解决这个问题的帖子。使用另一个线程查询DNS来模拟超时: http://thushw.blogspot.sg/2009/11/resolving-domain-names-quickly-with.html

关于java - 当 DNS 无法访问时 URLConnection.setConnectTimeout() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28188245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com