Skip to content
AgileLogics
4 min read

Networking Basics

Prerequisites: JVM internals overview

Java's built-in HttpClient (since Java 11) makes HTTP requests without any third-party library:

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

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

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode()); // 200
System.out.println(response.body());

client.send(...) blocks until the response arrives; sendAsync(...) returns a CompletableFuture instead, for non-blocking code.