当我从url.openStream()中捕获异常时,我不想告诉互联网不可用的困难方式.
有一种简单的方法可以判断计算机是否通过Java连接到Internet?在这种情况下,"连接到互联网"意味着能够从特定网址下载数据.
如果我尝试从它下载但它不可用,那么该程序会挂起一点.我不想那么挂.因此,我需要一种快速的方式来查询网站是否可用.
您要避免的问题是等待您的http连接确定您尝试访问的URL确实不可用.为了实现这一点,你需要停止使用url.openStream()这是openConnection().getInputStream()的快捷方式,并对你的连接有一个更好的控制.
URLConnection conn = url.openConnection(); conn.setConnectTimeout(timeoutMs); conn.setReadTimeout(timeoutMs); in = conn.getInputStream();
如果连接或读取超过您在timeoutMs参数中提供的时间,此代码将允许您超时连接尝试.
使用
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