Как сходить в сеть на чистой Java

«Как сходить в сеть на чистой Java» — вопрос из категории Сети, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В чистой Java для сетевых запросов можно использовать HttpURLConnection или HttpClient (начиная с Java 11).

Пример с HttpURLConnection:

URL url = new URL("https://example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");

int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    String inputLine;
    StringBuilder response = new StringBuilder();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
} else {
    System.out.println("Error: " + responseCode);
}
connection.disconnect();

Пример с HttpClient (Java 11+):

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://example.com"))
        .build();

client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
        .thenApply(HttpResponse::body)
        .thenAccept(System.out::println)
        .join();

Важно:

  • Обрабатывай исключения (IOException, URISyntaxException).
  • Для сложных запросов (POST, заголовки) используй HttpURLConnection.setRequestProperty() или HttpRequest.Builder.
  • В Android лучше использовать OkHttp или Retrofit.