Java HttpURLConnection.connect: соединение ещё не HTTP-успех
Имя connect встречается во многих API и не обозначает один универсальный сетевой метод. В примере ниже используется Java HttpURLConnection: он создаётся через URLConnection и работает с HTTP, а не с произвольным интерфейсом Connection.
Пример с таймаутами
var url = java.net.URI.create("https://example.com/").toURL();
var connection = (java.net.HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.setRequestMethod("GET");
try {
connection.connect();
int status = connection.getResponseCode();
System.out.println("HTTP " + status);
} finally {
connection.disconnect();
}Фрагмент выполняют внутри метода с обработкой IOException либо throws. Вызов getResponseCode и чтение тела могут инициировать соединение сами; отдельный connect не всегда обязателен.
Интерпретация
- Отказ подключения и HTTP404 — разные ситуации:404 означает полученный ответ.
- Только200 недостаточно как универсального критерия: допустимые статусы зависят от операции.
- Read timeout ограничивает ожидание чтения, connect timeout — установление соединения.
- Если читается тело, поток нужно закрывать; для HTTP-ошибок учитывайте error stream.
Не отключайте проверку HTTPS-сертификата для исправления сетевой ошибки. При недоверенном URL ограничивайте разрешённые назначения и редиректы: серверный fetch может стать SSRF. Для нового Java-кода можно также рассмотреть java.net.http.HttpClient с собственной моделью запросов.