2015-10-05 2 views
1
boolean reachable = false; 

while (true){ 
    Socket socket = null; 
    while (reachable == false && (System.currentTimeMillis() < (CUR_TIME + 1000))){ 
     try { 
      socket = new Socket(hostname, 80); 
      reachable = true; 
     } catch (UnknownHostException e) { 
      reachable = false; 
     } 
    } 
} 

Я хочу, в конечном счете, позвонить status = httpConnection.getResponseCode();, но если пользователь вводит недостижимый хост, возникает ошибка. Поэтому я использую приведенный выше код, чтобы убедиться, что хост доступен. Однако, reachable всегда возвращает значение false, даже если хост находится в хорошем состоянии (как показывают другие методы).Как проверить доступность хоста?

ответ

4

HttpURLConnection:

try{ 
    URL url = new URL("http://tes23123t.com"); 
    HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
    connection.setRequestMethod("GET"); 
    connection.connect(); 
    int respCode = connection.getResponseCode(); 
    System.out.println(respCode); 
}catch(UnknownHostException e){ 
    System.out.println("Unknown Host!!"); 
} 

Или вы могли бы использовать OKHttp библиотеку, если вы предпочитаете более простой реализации

Смежные вопросы