Java 11 (LTS) · Topic 2 of 6
HTTP Client
Definition​
Java 11 made java.net.http.HttpClient a standard part of Java. It sends HTTP requests, supports HTTP/2, and can work synchronously or asynchronously, so you no longer need an extra library for simple calls.
Example code​
Calling a small local server (so it runs without internet)
import com.sun.net.httpserver.HttpServer;
import java.net.InetSocketAddress;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
class Demo {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(0), 0); // a tiny server for the example
server.createContext("/hello", exchange -> {
byte[] body = "Hello from the server".getBytes();
exchange.sendResponseHeaders(200, body.length);
exchange.getResponseBody().write(body);
exchange.close();
});
server.start();
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(
URI.create("http://localhost:" + server.getAddress().getPort() + "/hello")).build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode() + " " + response.body());
server.stop(0);
}
}
// Output:
// 200 Hello from the server
Finished this page? Track your progress (saved only in your browser).