如何在 java 中检查 url 连接状态

how to check url connection status in java

我正在使用 "URLConnection" 在 java 中执行获取请求。我将 get 请求发送到不同的 IP 地址以生成 alarm.If url 是有效的,它建立了连接并从 url 读取数据 return,但是如果连接不成功,它不会 return 任何事情。我需要知道 urlconnection 中是否有任何 isconnect 方法,因为我需要为我的程序设置一个标志并且我找不到任何方法来确定不成功的连接,我正在使用以下代码: URL url = new URL(地址);

         URLConnection conn = url.openConnection();
         conn.setConnectTimeout(20);
         //bool flag=conn.isconnect()


        BufferedReader br = new BufferedReader(new 
        InputStreamReader(conn.getInputStream()));              
       System.out.println("connected"); 

      while ((line = br.readLine()) != null)
      {
        result += line;

      }
      //if (flag){triggered the ip}
      //if (!flag){not triggered}

我需要执行注释的 if 条件,但我正在为此苦苦挣扎,因为如果 ip 无效或不存在,程序不会在 "bufferedReader br" 语句之后到达。

url.openConnection,conn.getInputStream连接无法建立时会抛出异常

唯一的问题是您的服务器是否会接受连接但不会发送任何东西(因为它挂起,服务器端的代码有错误)。 因此,您必须调用 setConnectTimeout 以在发生异常时获取异常。

抱歉,您已经设置了超时。异常处理应该完成这项工作。

try {
    URLConnection conn = url.openConnection();
    conn.setConnectTimeout(20);
    conn.setReadTimeout(...)

    BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    System.out.println("connected");

    while ((line = br.readLine()) != null) {
        result += line;
    }
} catch (IOException e) {
    ... deal with wrong address, timeout and etc
}