1.1 HttpClient அறிமுகம்
JDK 11 இல் தொடங்கி, Java இயங்குதளத்தின் டெவலப்பர்கள் http கோரிக்கைகளை உருவாக்க JDK க்கு ஒரு சக்திவாய்ந்த புதிய கருவியைச் சேர்த்தனர் java.net.http
. இது நான்கு முக்கிய வகுப்புகளைக் கொண்டுள்ளது:
- HttpClient
- HttpRequest
- HttpResponse
- வலை சாக்கெட்
இவை மிகவும் சக்திவாய்ந்த வகுப்புகளாகும், அவை 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