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

时间:2015-02-24 16:53:38

标签: java httpurlconnection

我正在使用" URLConnection"在java中执行get请求。我将获取请求发送到不同的IP地址以生成警报。如果url有效,则建立连接并从url读取数据返回,但如果连接不成功则不返回任何内容。我需要知道urlconnection中是否有任何isconnect方法,因为我需要为我的程序设置一个标志,我无法找到任何方法来确定不成功的连接,我使用以下代码:            网址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条件,但我正在努力,因为程序没有达到" bufferedReader br"如果ip无效或者不存在则声明。

1 个答案:

答案 0 :(得分:-1)

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

唯一的问题是,如果您的服务器将接受连接但不会发送enything(导致它挂起,服务器端的代码有错误)。 因此,您必须调用setConnectTimeout才能在发生异常时获取异常。

Appology你已经设置了超时。异常处理应该完成这项工作。

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
}