కొత్త HttpClient

అందుబాటులో ఉంది

1.1 HttpClient పరిచయం

JDK 11తో ప్రారంభించి, Java ప్లాట్‌ఫారమ్ డెవలపర్‌లు http అభ్యర్థనలు చేయడానికి JDKకి శక్తివంతమైన కొత్త సాధనాన్ని జోడించారు, ది java.net.http. ఇది నాలుగు కీలక తరగతులను కలిగి ఉంది:

  • HttpClient
  • HttpRequest
  • HttpResponse
  • వెబ్ సాకెట్

ఇవి చాలా శక్తివంతమైన తరగతులు, వీటిని ఉపయోగించి సాధ్యమయ్యే అన్ని రకాల అభ్యర్థనలను నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తాయి HTTPమరియు HTTP/2.WebSocket

అదనంగా, మీరు సమకాలిక మరియు అసమకాలిక http అభ్యర్థనలు రెండింటినీ చేయడానికి ఈ తరగతులను ఉపయోగించవచ్చు.

http అభ్యర్థన చేయడం క్రింది భాగాలను కలిగి ఉంటుంది:

  1. ఒక వస్తువును సృష్టించండిHttpClient
  2. ఒక వస్తువును సృష్టించండిHttpRequest
  3. send()లేదా పద్ధతిని ఉపయోగించి అభ్యర్థనను పంపడంsendAsync()
  4. ప్రతిస్పందన ప్రాసెసింగ్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 వారి స్వంత వస్తువును తిరిగి ఇస్తాయి , ఇది గొలుసుల రూపంలో కోడ్‌ని నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తుంది.

క్లాసిక్ కోడ్:
HttpClient client = HttpClient.new();
client.setVersion(Version.HTTP_1_1);
client.setFollowRedirects(Redirect.NORMAL);
client.setConnectTimeout(Duration.ofSeconds(20));
client.setAuthenticator(Authenticator.getDefault());
గొలుసుగా:
HttpClient client = HttpClient.new() .setVersion(Version.HTTP_1_1) .setFollowRedirects(Redirect.NORMAL). setConnectTimeout(Duration.ofSeconds(20)) .setAuthenticator(Authenticator.getDefault());
మేము ప్రతి పద్ధతిని ప్రత్యేక పంక్తికి బదిలీ చేస్తాము (ఇది ఒక పొడవైన ప్రకటన)
HttpClient client = HttpClient.new()
.setVersion(Version.HTTP_1_1)
.setFollowRedirects(Redirect.NORMAL)
.setConnectTimeout(Duration.ofSeconds(20))
.setAuthenticator(Authenticator.getDefault());

రెండవది , ఉపసర్గ పద్ధతుల నుండి తీసివేయబడుతుంది set, ఇది కోడ్‌ను మరింత కాంపాక్ట్‌గా వ్రాయడానికి మిమ్మల్ని అనుమతిస్తుంది:

ఉంది
HttpClient client = HttpClient.new()
.setVersion(Version.HTTP_1_1)
.setFollowRedirects(Redirect.NORMAL)
.setConnectTimeout(Duration.ofSeconds(20))
.setAuthenticator(Authenticator.getDefault());
అయింది
HttpClient client = HttpClient.new()
.version(Version.HTTP_1_1)
.followRedirects(Redirect.NORMAL)
.connectTimeout(Duration.ofSeconds(20))
.authenticator(Authenticator.getDefault());

ఇటువంటి కోడ్ చదవడం సులభం, అయితే రాయడం కష్టం.

మరియు మరొక ముఖ్యమైన అంశం. ఈ ఉదాహరణలో, బిల్డర్ నమూనా ఉపయోగించబడింది. ఒక వస్తువును సృష్టించడం సంక్లిష్టమైన ప్రక్రియ అయిన సందర్భాలు ఉన్నాయి. అందువల్ల, వారు దానిని అధికారికీకరించడానికి ఇష్టపడతారు: ఇది షరతులతో కూడిన పద్ధతి కాల్‌తో ప్రారంభమవుతుంది begin()మరియు షరతులతో కూడిన పద్ధతి కాల్‌తో ముగుస్తుంది end().

మేము విశ్లేషించిన ఉదాహరణలో, పద్ధతి HttpClient.newBuilder()ఒక వస్తువును అందిస్తుంది HttpClient.Builder(ఇది తరగతి యొక్క అంతర్గత యుటిలిటీ క్లాస్ HttpClient). ఈ రకమైన అన్ని పద్ధతులు version()ఈ సేవా వస్తువుపై మాత్రమే పిలువబడతాయి. బాగా, పద్ధతి యొక్క కాల్ build()వస్తువు యొక్క నిర్మాణం యొక్క ముగింపును సూచిస్తుంది మరియు వస్తువును తిరిగి ఇస్తుంది HttpClient.

వ్యాఖ్యలు
  • జనాదరణ పొందినది
  • కొత్తది
  • పాతది
వ్యాఖ్యానించడానికి మీరు తప్పనిసరిగా సైన్ ఇన్ చేసి ఉండాలి
ఈ పేజీకి ఇంకా ఎలాంటి వ్యాఖ్యలు లేవు