CodeGym /पाठ्यक्रम /All lectures for HI purposes /HttpRequest के साथ अनुरोध करना

HttpRequest के साथ अनुरोध करना

All lectures for HI purposes
स्तर 1 , सबक 984
उपलब्ध

तरीके न्यूबिल्डर (), बिल्ड ()

HttpRequest वर्ग का उपयोग http-अनुरोध का वर्णन करने के लिए किया जाता है, जिसे इसके नाम से समझना आसान है। यह ऑब्जेक्ट अपने आप कुछ नहीं करता है, इसमें केवल http अनुरोध के बारे में विभिन्न जानकारी होती है। इसलिए, जैसा कि आप शायद पहले ही अनुमान लगा चुके हैं, इसे बनाने के लिए बिल्डर टेम्पलेट का भी उपयोग किया जाता है।

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

न्यूबिल्डर () और बिल्ड () विधियों के लिए कॉल के बीच , आपको ऑब्जेक्ट बनाने के लिए सभी तरीकों को कॉल करने की आवश्यकता हैएचटीटीपी अनुरोध.

एक साधारण अनुरोध का एक उदाहरण इस तरह दिखता है:

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

आप आधिकारिक दस्तावेज में लिंक पर HttpRequest वर्ग के सभी तरीकों को पा सकते हैं ।

और फिर हम उनमें से सबसे लोकप्रिय का विश्लेषण करेंगे।

यूरी () विधि

यूरी () विधि का उपयोग करके , आप यूआरआई (या यूआरएल) सेट कर सकते हैं जिस पर http अनुरोध भेजा जाएगा। उदाहरण:

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

वैसे, आप यूआरआई को सीधे newBuilder() विधि में पास करके इस कोड को थोड़ा छोटा कर सकते हैं :

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

महत्वपूर्ण! URI को दो तरह से बनाया जा सकता है:

  • न्यूयूआरआई (स्ट्रिंग)
  • URI.create (स्ट्रिंग)

दूसरा तरीका श्रेयस्कर है। पहला तरीका, दुर्भाग्य से, बहुत अच्छा नहीं है, क्योंकि URI कंस्ट्रक्टर को public URI(String str) के रूप में घोषित किया गया है, URISyntaxException को फेंकता है , और URISyntaxException एक चेक किया गया अपवाद है।

तरीके GET (), पोस्ट (), पुट (), DELETE ()

आप निम्न विधियों का उपयोग करके http अनुरोध विधि सेट कर सकते हैं:

  • पाना()
  • डाक()
  • रखना()
  • मिटाना()

यहाँ एक साधारण 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 को फेंक दिया जाएगा ।

वस्तु का उपयोग करके ही समय निर्धारित किया जाता हैअवधिजावा डेटटाइम एपीआई से। उदाहरण:

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();

प्राथमिक सब कुछ सरल है।

टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION