如何在Java中测试互联网的可用性?

Pen*_*ant 8 java

当我从url.openStream()中捕获异常时,我不想告诉互联网不可用的困难方式.

有一种简单的方法可以判断计算机是否通过Java连接到Internet?在这种情况下,"连接到互联网"意味着能够从特定网址下载数据.

如果我尝试从它下载​​但它不可用,那么该程序会挂起一点.我不想那么挂.因此,我需要一种快速的方式来查询网站是否可用.

Ste*_*eet 10

您要避免的问题是等待您的http连接确定您尝试访问的URL确实不可用.为了实现这一点,你需要停止使用url.openStream()这是openConnection().getInputStream()的快捷方式,并对你的连接有一个更好的控制.

URLConnection conn = url.openConnection();  
conn.setConnectTimeout(timeoutMs);  
conn.setReadTimeout(timeoutMs);  
in = conn.getInputStream();  
Run Code Online (Sandbox Code Playgroud)

如果连接或读取超过您在timeoutMs参数中提供的时间,此代码将允许您超时连接尝试.


小智 5

使用

Process p1 = java.lang.Runtime.getRuntime().exec("ping www.google.com");
System.out.println(p1.waitFor());
// return code for p1 will be 0 if internet is connected, else it will be 1
Run Code Online (Sandbox Code Playgroud)