
- Java 11 Tutorial
- Java 11 - Home
- Java 11 - Overview
- Java 11 - Environment Setup
- Java 11 - Standard HttpClient
- Java 11 - Compile free Launch
- Java 11 - String APIs
- Java 11 - Collections to Array
- Java 11 - File APIs
- Java 11 - Optional Class
- Java 11 - Not Predicate
- Java 11 - var in lambda
- Java 11 - Nest Based Access
- Java 11 - Removed/Deprecated API
- Java Other Versions Tutorials
- Java Tutorial
- Java 8 Tutorial
- Java 9 Tutorial
- Java 10 Tutorial
- Java 12 Tutorial
- Java 13 Tutorial
- Java 14 Tutorial
- Java 15 Tutorial
- Java 16 Tutorial
- Java 11 Useful Resources
- Java 11 - Quick Guide
- Java 11 - Useful Resources
- Java 11 - Discussion
Java 11 - Standard HttpClient
An enhanced HttpClient API was introduced in Java 9 as an experimental feature. With Java 11, now HttpClient is a standard. It is recommended to use instead of other HTTP Client APIs like Apache Http Client API. It is quite feature rich and now Java based applications can make HTTP requests without using any external dependency.
Steps
Following are the steps to use an HttpClient.
Create HttpClient instance using HttpClient.newBuilder() instance
Create HttpRequest instance using HttpRequest.newBuilder() instance
Make a request using httpClient.send() and get a response object.
Example
import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.time.Duration; public class APITester { public static void main(String[] args) { HttpClient httpClient = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_2) .connectTimeout(Duration.ofSeconds(10)) .build(); try { HttpRequest request = HttpRequest.newBuilder() .GET() .uri(URI.create("https://www.google.com")) .build(); HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println("Status code: " + response.statusCode()); System.out.println("Headers: " + response.headers().allValues("content-type")); System.out.println("Body: " + response.body()); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } }
Output
It will print the following output.
Status code: 200 Headers: [text/html; charset=ISO-8859-1] Body: <!doctype html> ... </html>
Advertisements