CodeGym/Java Course/தொகுதி 3/HttpRequest மூலம் கோரிக்கையை உருவாக்குதல்

HttpRequest மூலம் கோரிக்கையை உருவாக்குதல்

கிடைக்கப்பெறுகிறது

முறைகள் newBuilder(), build()

HttpRequest வகுப்பு http-கோரிக்கையை விவரிக்கப் பயன்படுகிறது, இது அதன் பெயரிலிருந்து புரிந்துகொள்வதற்கு எளிதானது. இந்த பொருள் தானாகவே எதுவும் செய்யாது, இது http கோரிக்கை பற்றிய பல்வேறு தகவல்களைக் கொண்டுள்ளது. எனவே, நீங்கள் ஏற்கனவே யூகித்தபடி, அதை உருவாக்க பில்டர் வார்ப்புருவும் பயன்படுத்தப்படுகிறது.

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

newBuilder() மற்றும் 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();

அடிப்படையான அனைத்தும் எளிமையானவை.

கருத்துக்கள்
  • பிரபலமானவை
  • புதியவை
  • பழையவை
ஒரு கருத்தைத் தெரிவிக்க நீங்கள் உள்நுழைந்திருக்க வேண்டும்
இந்தப் பக்கத்தில் இதுவரை எந்தக் கருத்தும் வழங்கப்படவில்லை