Правильный способ проверить, работает ли сервер в Java? - PullRequest
3 голосов
/ 04 марта 2012

Каким образом можно было бы просто посмотреть, можно ли установить соединение с веб-сайтом / сервером?Я хочу это для приложения, которое я кодирую, которое просто предупредит меня, если мой веб-сайт отключится.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 04 марта 2012

Вы можете использовать HttpURLConnection для отправки запроса и проверки тела ответа на наличие текста, уникального для этой страницы (вместо того, чтобы просто проверить, есть ли ответ вообще, на случай, если страница ошибки или обслуживания или что-то обслуживается).

Apache Commons имеет библиотеку, которая удаляет большую часть базовой процедуры выполнения запросов Http в Java.

Я никогда не делал ничего подобного специально для Android, но я бы удивился, если бы это было по-другому.

Вот краткий пример:

URL url = new URL(URL_TO_APPLICATION);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream stream = connection.getInputStream();
Scanner scanner = new Scanner(stream); // You can read the stream however you want. Scanner was just an easy example
boolean found = false;
while(scanner.hasNext()) {
    String next = scanner.next();
    if(TOKEN.equals(next)) {
        found = true;
        break;
    }
}

if(found) {
    doSomethingAwesome();
} else {
    throw aFit();
}
1 голос
/ 04 марта 2012

Вы также хотите установить время ожидания соединения, используя setConnectTimeout(int timeout) и setReadTimeout(int timeout).В противном случае код может долго зависать, ожидая ответа не отвечающего сервера.

...