కోడ్‌జిమ్/జావా కోర్సు/మాడ్యూల్ 3/HttpRequestతో అభ్యర్థన చేయడం

HttpRequestతో అభ్యర్థన చేయడం

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

పద్ధతులు newBuilder(), build()

HttpRequest తరగతి http-అభ్యర్థనను వివరించడానికి ఉపయోగించబడుతుంది, దాని పేరు నుండి సులభంగా అర్థం చేసుకోవచ్చు. ఈ వస్తువు స్వయంగా ఏమీ చేయదు, ఇది కేవలం http అభ్యర్థన గురించి వివిధ సమాచారాన్ని కలిగి ఉంటుంది. అందువల్ల, మీరు బహుశా ఇప్పటికే ఊహించినట్లుగా, బిల్డర్ టెంప్లేట్ దీన్ని సృష్టించడానికి కూడా ఉపయోగించబడుతుంది.

HttpRequest request = HttpRequest.newBuilder()
	.method1()
	.method2()
	.methodN()
    .build();

కొత్త బిల్డర్ () మరియు బిల్డ్ () పద్ధతులకు కాల్‌ల మధ్య మీరు వస్తువును నిర్మించడానికి అన్ని పద్ధతులను కాల్ చేయాలిHttpRequest.

సాధారణ అభ్యర్థన యొక్క ఉదాహరణ ఇలా కనిపిస్తుంది:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(“http://codegym.cc”))
    .build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());

మీరు అధికారిక డాక్యుమెంటేషన్‌లోని లింక్‌లో HttpRequest తరగతి యొక్క అన్ని పద్ధతులను కనుగొనవచ్చు .

ఆపై మేము వాటిలో అత్యంత ప్రాచుర్యం పొందిన వాటిని విశ్లేషిస్తాము.

uri() పద్ధతి

uri() పద్ధతిని ఉపయోగించి , మీరు http అభ్యర్థన పంపబడే URI (లేదా URL)ని సెట్ చేయవచ్చు. ఉదాహరణ:

HttpRequest request = HttpRequest.newBuilder()
    .uri( URI.create(“http://codegym.cc”) )
    .build();

మార్గం ద్వారా, మీరు URIని నేరుగా newBuilder() పద్ధతికి పంపడం ద్వారా ఈ కోడ్‌ని కొద్దిగా తగ్గించవచ్చు :

HttpRequest request = HttpRequest.newBuilder( URI.create(“http://codegym.cc”) ).build();

ముఖ్యమైనది! URIని రెండు విధాలుగా సృష్టించవచ్చు:

  • newURI(స్ట్రింగ్)
  • URI.create(స్ట్రింగ్)

రెండవ మార్గం ఉత్తమం. మొదటి మార్గం, దురదృష్టవశాత్తూ, చాలా మంచిది కాదు, ఎందుకంటే URI కన్స్ట్రక్టర్ పబ్లిక్ URI(స్ట్రింగ్ str) URISyntaxExceptionని విసురుతుంది మరియు URISyntaxException అనేది తనిఖీ చేయబడిన మినహాయింపు.

పద్ధతులు GET(), POST(), PUT(), DELETE()

మీరు క్రింది పద్ధతులను ఉపయోగించి http అభ్యర్థన పద్ధతిని సెట్ చేయవచ్చు:

  • పొందండి()
  • పోస్ట్()
  • PUT()
  • తొలగించు()

సాధారణ GET అభ్యర్థన ఎలా ఉంటుందో ఇక్కడ ఉంది:

HttpRequest request = HttpRequest.newBuilder()
  .uri(new URI("https://codegym.cc"))
  .GET()
  .build();

వెర్షన్ () పద్ధతి

మీరు HTTP ప్రోటోకాల్ సంస్కరణను కూడా సెట్ చేయవచ్చు. కేవలం 2 ఎంపికలు మాత్రమే ఉన్నాయి:

  • HttpClient.Version.HTTP_1_1
  • HttpClient.Version.HTTP_2

మీరు HTTP/2 ప్రోటోకాల్‌ని ఉపయోగించి అభ్యర్థనను సృష్టించాలనుకుంటున్నారని అనుకుందాం, అప్పుడు మీరు వ్రాయవలసి ఉంటుంది:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .version( HttpClient.Version.HTTP_2 )
   .GET()
   .build();

చాలా సులభం, కాదా? :)

గడువు () పద్ధతి

మీరు ప్రశ్న అమలు సమయాన్ని కూడా సెట్ చేయవచ్చు. ఇది పాస్ అయినట్లయితే మరియు అభ్యర్థన ఎప్పటికీ పూర్తి కాకపోతే, HttpTimeoutException విసిరివేయబడుతుంది .

వస్తువును ఉపయోగించి సమయం కూడా సెట్ చేయబడిందివ్యవధిJava DateTime API నుండి. ఉదాహరణ:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .timeout( Duration.of(5, SECONDS) )
   .GET()
   .build();

ఈ పద్ధతి యొక్క ఉనికి HttpClient మరియు HttpRequest తరగతులు వివిధ రకాల పనులను చేయగలవని చూపిస్తుంది. మీరు అభ్యర్థనను అమలు చేస్తున్నారని ఊహించండి మరియు నెట్‌వర్క్‌కు ఏదో జరిగింది మరియు అది 30 సెకన్ల పాటు కొనసాగింది. మినహాయింపును వెంటనే స్వీకరించడం మరియు దానికి సరిగ్గా స్పందించడం చాలా ఉపయోగకరంగా ఉంటుంది.

శీర్షిక() పద్ధతి

మీరు ఏదైనా అభ్యర్థనకు ఎన్ని హెడర్‌లను అయినా జోడించవచ్చు. మరియు ఇది ఏదైనా చేయడం చాలా సులభం. దీని కోసం ఒక ప్రత్యేక పద్ధతి ఉంది - శీర్షిక() . ఉదాహరణ:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .header("name1", "value1")
   .header("name2", "value2")
   .GET()
   .build();

ఒకేసారి అనేక శీర్షికలను సెట్ చేయడానికి మరొక ప్రత్యామ్నాయ మార్గం ఉంది. ఉదాహరణకు, మీరు హెడర్‌ల జాబితాను శ్రేణిగా మార్చినట్లయితే ఇది ఉపయోగకరంగా ఉండవచ్చు:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .headers("name1", "value1", "name2", "value2")
   .GET()
   .build();

ప్రాథమిక ప్రతిదీ సులభం.

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