Http/2 क्लाइंट API
Http/2 क्लाइंट API Java 9 में पेश किया गया। इसमें Http/1.1 पर प्रदर्शन सुधार हैं और सर्वर-साइड पुश इवेंट्स का भी समर्थन करता है। यह वेबसाइट को कुशल और तेज़ ब्राउज़ करने के लिए बनाता है। Http/2 क्लाइंट एक इनक्यूबेटर मॉड्यूल है जिसका नाम jdk.incubator.httpclient है, जिसका अर्थ है कि सभी सुविधाएं अभी तक अंतिम रूप नहीं दी गई हैं, और भविष्य के Java संस्करणों में नए परिवर्तन आ सकते हैं। यह jdk.incubator.http पैकेज निर्यात करता है जिसमें सभी पब्लिक APIs होते हैं।
JShell में उपयोग
Http/2 क्लाइंट का उपयोग करने के लिए, हमें इनक्यूबेटर मॉड्यूल का उपयोग करने की आवश्यकता है, हम बस httpclient मॉड्यूल को JShell में "--add-modules" कमांड का उपयोग करके पास करते हैं:
C:\>jshell -v --add-modules jdk.incubator.httpclient
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro
उदाहरण: JShell में GET रिक्वेस्ट
jshell> import jdk.incubator.http.*;
jshell> HttpClient httpClient = HttpClient.newHttpClient();
httpClient ==> jdk.incubator.http.HttpClientImpl@534df152
| created variable httpClient : HttpClient
jshell> HttpRequest httpRequest = HttpRequest.newBuilder().uri(new URI("https://www.google.com")).GET().build();
httpRequest ==> https://www.google.com GET
| created variable httpRequest : HttpRequest
jshell> HttpResponse httpResponse = httpClient.send(httpRequest, HttpResponse.BodyHandler.asString());
httpResponse ==> jdk.incubator.http.HttpResponseImpl@609cd4d8
| created variable httpResponse : HttpResponse
jshell> System.out.println(httpResponse.statusCode());
403
jshell> System.out.println(httpResponse.body());
... (HTML रिस्पॉन्स बॉडी) ...
Http/2 क्लाइंट आधुनिक HTTP संचार के लिए एक मानक, गैर-ब्लॉकिंग API प्रदान करता है।