Java 检查url是否已打开?

Java 检查url是否已打开?,java,url,Java,Url,我需要检查特定的url是否已打开。 url的格式如下 http://IP:port 当我使用java.net.URL类时,我得到java.net.SocketException或java.net.ConnectException 当我ping这些IP时,我发现了它们,那么为什么java不能识别它们呢 我写的代码是 URL url = new URL( urlString ); HttpURLConnection httpConn = (HttpURLConnection)url.openCo

我需要检查特定的url是否已打开。 url的格式如下

http://IP:port
当我使用
java.net.URL
类时,我得到
java.net.SocketException
java.net.ConnectException

当我ping这些IP时,我发现了它们,那么为什么java不能识别它们呢

我写的代码是

URL url = new URL( urlString );
HttpURLConnection httpConn =  (HttpURLConnection)url.openConnection();
httpConn.setInstanceFollowRedirects( false );
httpConn.setRequestMethod( "HEAD" ); 
httpConn.connect();
端口号是必须使用的!
我如何使用java检查它们?

可能还有其他问题,但我发现这个页面正是您想要的:


但url中没有端口号。

从这里开始就可以正常工作:

URL url = new URL( "http://google.com/" );
HttpURLConnection httpConn =  (HttpURLConnection)url.openConnection();
httpConn.setInstanceFollowRedirects( false );
httpConn.setRequestMethod( "HEAD" ); 
httpConn.connect();

System.out.println( "google.com : " + httpConn.getResponseCode());
或对于失败:

URL url = new URL( "http://google.com:666/" );
HttpURLConnection httpConn =  (HttpURLConnection)url.openConnection();
httpConn.setInstanceFollowRedirects( false );
httpConn.setRequestMethod( "HEAD" ); 
try{
    httpConn.connect();
     System.out.println( "google.com : " + httpConn.getResponseCode());
}catch(java.net.ConnectException e){
     System.out.println( "google.com:666 is down ");
}

可能是服务器已启动并正在运行(响应ping),但没有HTTP服务器正在该端口上侦听。

您可以共享ip:端口还是内部端口?你能找到一个我们可以测试的例子吗?你确实意识到ConnectException表明,从运行此代码的机器的角度来看,URL是“未启动”的,对吗?如果“未启动”的定义为“无法从此机器连接到”。是。但我必须按端口号来做!