Java recently released Java 14
JDK. In this tutorial we will go over Overview and Simple Java Synchronous HttpClient Client Tutorial.
If you have any of below questions then you are at right place.
- How do you create an asynchronous HTTP request in JAVA
- Why use HttpClient for Synchronous Connection
- A small introduction to Java 11’s HttpClient
- Java 11 HTTP/2 API Tutorial
- Introduction to the Java HTTP Client OpenJDK
- Java HTTP Client – Examples and Recipes
An HttpClient
can be used to send requests and retrieve their responses. An HttpClient is created through a builder.
Let’s get started:
Create file CrunchifyJavaSynchronousHTTPClient.java
package crunchify.com.tutorial; import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpHeaders; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.time.Duration; /** * @author Crunchify.com * Overview and Simple Java Synchronous HttpClient Client Tutorial */ public class CrunchifyJavaSynchronousHTTPClient { private static final HttpClient crunchifyHttpClient = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_1_1) .connectTimeout(Duration.ofSeconds(5)) .build(); // HttpClient: An HttpClient can be used to send requests and retrieve their responses. An HttpClient is created through a builder. // Duration: A time-based amount of time, such as '5 seconds'. // send() This class models a quantity or amount of time in terms of seconds and nanoseconds. It can be accessed using other duration-based units, such as minutes and hours. // In addition, the DAYS unit can be used and is treated as exactly equal to 24 hours, thus ignoring daylight savings effects. See Period for the date-based equivalent to this class. public static void main(String[] args) { HttpRequest crunchifyRequest = HttpRequest.newBuilder() .GET() .uri(URI.create("https://crunchify.com/wp-content/java/crunchify-java-httpclient-tutorial.html")) .setHeader("User-Agent", "Crunchify Java Synchronous HTTPClient Example...") .build(); // HttpResponse: An HttpResponse is not created directly, but rather returned as a result of sending an HttpRequest. HttpResponse<String> crunchifyResponse = null; try { // CompletableFuture: A Future that may be explicitly completed (setting its value and status), and may be used as a CompletionStage, supporting dependent functions and actions that trigger upon its completion. // send: Sends the given request using this client, blocking if necessary to get the response. // The returned HttpResponse<T> contains the response status, headers, and body ( as handled by given response body handler ). crunchifyResponse = crunchifyHttpClient.send(crunchifyRequest, HttpResponse.BodyHandlers.ofString()); // print response headers HttpHeaders crunchifyHeaders = crunchifyResponse.headers(); crunchifyHeaders.map().forEach((k, v) -> System.out.println(k + ":" + v)); // print status code crunnchifyPrint(crunchifyResponse.statusCode()); // print response body crunnchifyPrint(crunchifyResponse.body()); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } private static void crunnchifyPrint(Object data) { System.out.println(data); } }
crunchifyHttpClient.send()
java API sends the given request using this client, blocking if necessary to get the response.
The returned HttpResponse<T>
contains the response status, headers, and body (as handled by given response body handler).
Just run above code as Java program and you will see response as below.
Console Result:
/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA.app crunchify.com.tutorial.CrunchifyJavaSynchronousHTTPClient accept-ranges:[bytes] connection:[keep-alive] content-length:[108] content-type:[text/html; charset=UTF-8] date:[Sun, 06 Sep 2020 02:02:58 GMT] etag:["5f5442af-6c"] last-modified:[Sun, 06 Sep 2020 02:00:15 GMT] server:[nginx] x-edge-location-klb:[VhPBsSUriL2dZtW2Pu8FgAke45e082923ff37191eace6947ec35b35d] 200 <!DOCTYPE html> <html> <body> <h1>Hey.. This is Crunchify's Java HTTPClient Tutorial.</h1> </body> </html> Process finished with exit code 0
Please let me know if you face any issue running above Java code.
What’s next?
Java Asynchronous HttpClient Overview and Tutorial – sendAsync()
The post Java14 Synchronous HttpClient Example – Overview and Simple Tutorial – send() appeared first on Crunchify.
0 Commentaires