1.1 HttpClient चा परिचय
JDK 11 पासून सुरुवात करून, Java प्लॅटफॉर्मच्या विकसकांनी HTTP विनंत्या करण्यासाठी JDK मध्ये एक शक्तिशाली नवीन साधन जोडले, java.net.http
. यात चार मुख्य वर्ग आहेत:
- HttpClient
- Http विनंती
- Http प्रतिसाद
- वेब सॉकेट
HTTP
हे अतिशय शक्तिशाली वर्ग आहेत जे तुम्हाला , HTTP/2
आणि वापरून सर्व संभाव्य प्रकारच्या विनंत्या करू देतात WebSocket
.
या व्यतिरिक्त, तुम्ही हे वर्ग समकालिक आणि असिंक्रोनस HTTP विनंत्या करण्यासाठी वापरू शकता.
HTTP विनंती करण्यामध्ये खालील भाग असतात:
- एक ऑब्जेक्ट तयार करा
HttpClient
- एक ऑब्जेक्ट तयार करा
HttpRequest
send()
किंवा पद्धत वापरून विनंती पाठवत आहेsendAsync()
- प्रतिसाद प्रक्रिया
HttpResponse
अशा विनंतीचे उदाहरणः
HttpClient client = HttpClient.newBuilder()
.version(Version.HTTP_1_1)
.followRedirects(Redirect.NORMAL)
.connectTimeout(Duration.ofSeconds(20))
.proxy(ProxySelector.of(new InetSocketAddress("proxy.example.com", 80)))
.authenticator(Authenticator.getDefault())
.build();
HttpResponse<String> response = client.send(request, BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
1.2 घोषणात्मक दृष्टीकोन
वरील उदाहरणामध्ये, तुम्हाला कोड लिहिण्याच्या तथाकथित घोषणात्मक दृष्टिकोनाचे उदाहरण दिसते. चला उदाहरणाचा पहिला भाग पाहू:
HttpClient client = HttpClient.newBuilder()
.version(Version.HTTP_1_1)
.followRedirects(Redirect.NORMAL)
.connectTimeout(Duration.ofSeconds(20))
.proxy(ProxySelector.of(new InetSocketAddress("proxy.example.com", 80)))
.authenticator(Authenticator.getDefault())
.build();
हा कोड क्लासिक शैलीमध्ये कसा दिसेल:
HttpClient client = HttpClient.new();
client.setVersion(Version.HTTP_1_1);
client.setFollowRedirects(Redirect.NORMAL);
client.setConnectTimeout(Duration.ofSeconds(20));
client.setProxy(ProxySelector.of(new InetSocketAddress("proxy.example.com", 80)));
client.setAuthenticator(Authenticator.getDefault());
कोडमध्ये घोषणात्मक दृष्टिकोन वापरताना, दोन गोष्टी बदलतात. प्रथम , सर्व वर्ग पद्धती HttpClient
त्यांचे स्वतःचे ऑब्जेक्ट परत करतात , जे तुम्हाला साखळीच्या स्वरूपात कोड व्यवस्थापित करण्यास अनुमती देतात.
क्लासिक कोड: |
---|
|
साखळी म्हणून: |
|
आम्ही प्रत्येक पद्धत वेगळ्या ओळीवर हस्तांतरित करतो (हे एक लांब विधान आहे) |
|
दुसरे म्हणजे , उपसर्ग पद्धतींमधून काढला गेला आहे set
, जो आपल्याला कोड अधिक संक्षिप्तपणे लिहिण्याची परवानगी देतो:
होते |
---|
|
तो बनला |
|
असे कोड वाचणे सोपे आहे, जरी लिहिणे कठीण आहे.
आणि आणखी एक महत्त्वाचा मुद्दा. या उदाहरणात, बिल्डर पॅटर्न वापरला होता. अशी परिस्थिती आहे जिथे ऑब्जेक्ट तयार करणे ही एक जटिल प्रक्रिया आहे. म्हणून, ते त्यास औपचारिक करणे पसंत करतात: ते सशर्त पद्धत कॉलने सुरू होते begin()
आणि सशर्त पद्धत कॉलने समाप्त होते end()
.
आम्ही विश्लेषण केलेल्या उदाहरणामध्ये, पद्धत HttpClient.newBuilder()
ऑब्जेक्ट परत करते HttpClient.Builder
(हा वर्गाचा अंतर्गत उपयोगिता वर्ग आहे HttpClient
). version()
या सेवा ऑब्जेक्टवर प्रकारच्या सर्व पद्धती कॉल केल्या जातात. बरं, पद्धतीचा कॉल build()
ऑब्जेक्टच्या बांधकामाचा शेवट चिन्हांकित करतो आणि ऑब्जेक्ट परत करतो HttpClient
.
GO TO FULL VERSION