Мне нужен класс монитора, который регулярно проверяет, доступен ли данный URL-адрес HTTP. Я могу позаботиться о "регулярной" части, используя абстракцию Spring TaskExecutor, чтобы не тема здесь. Вопрос: Каков предпочтительный способ пинга URL-адреса в java?
Вот мой текущий код в качестве отправной точки:
try {
final URLConnection connection = new URL(url).openConnection();
connection.connect();
LOG.info("Service " + url + " available, yeah!");
available = true;
} catch (final MalformedURLException e) {
throw new IllegalStateException("Bad URL: " + url, e);
} catch (final IOException e) {
LOG.info("Service " + url + " unavailable, oh no!", e);
available = false;
}
- Является ли это вообще хорошим (будет ли он делать то, что я хочу)?
- Должен ли я как-то закрыть соединение?
- Я предполагаю, что это запрос
GET
. Есть ли способ отправитьHEAD
вместо этого?