CodeGym /Java Course /मॉड्यूल 3 /HttpRequest सह विनंती करत आहे

HttpRequest सह विनंती करत आहे

मॉड्यूल 3
पातळी 10 , धडा 1
उपलब्ध

पद्धती newBuilder(), बिल्ड()

HttpRequest क्लासचा वापर http-request चे वर्णन करण्यासाठी केला जातो, जो त्याच्या नावावरून समजण्यास सोपा आहे. हा ऑब्जेक्ट स्वतः काहीही करत नाही, त्यात फक्त http विनंतीबद्दल विविध माहिती असते. त्यामुळे, तुम्ही आधीच अंदाज लावल्याप्रमाणे, बिल्डर टेम्पलेट देखील ते तयार करण्यासाठी वापरले जाते.

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

newBuilder() आणि बिल्ड() या पद्धतींना कॉल करताना तुम्हाला ऑब्जेक्ट तयार करण्यासाठी सर्व पद्धतींवर कॉल करणे आवश्यक आहेHttp विनंती.

साध्या विनंतीचे उदाहरण असे दिसते:

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() पद्धत वापरून , तुम्ही URI (किंवा URL) सेट करू शकता ज्यावर http विनंती पाठवली जाईल. उदाहरण:

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

तसे, तुम्ही यूआरआय थेट newBuilder() पद्धतीने पास करून हा कोड थोडा लहान करू शकता :

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

महत्वाचे! URI दोन प्रकारे तयार केला जाऊ शकतो:

  • newURI(स्ट्रिंग)
  • URI.create(स्ट्रिंग)

दुसरा मार्ग श्रेयस्कर आहे. पहिला मार्ग, दुर्दैवाने, फारसा चांगला नाही, कारण URI कन्स्ट्रक्टर सार्वजनिक URI(String str) फेकतो URISyntaxException , आणि URISyntaxException हा चेक केलेला अपवाद आहे.

पद्धती GET(), POST(), PUT(), 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 टाकला जाईल .

ऑब्जेक्ट वापरून वेळ स्वतः सेट केली जातेकालावधीJava DateTime API वरून. उदाहरण:

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

या पद्धतीची उपस्थिती दर्शवते की HttpClient आणि HttpRequest वर्ग विविध कार्ये करू शकतात. कल्पना करा की तुम्ही विनंती कार्यान्वित करत आहात आणि नेटवर्कमध्ये काहीतरी घडले आणि ते 30 सेकंद टिकले. त्वरित अपवाद प्राप्त करणे आणि त्यावर योग्य प्रतिक्रिया देणे अधिक उपयुक्त आहे.

header() पद्धत

तुम्ही कोणत्याही विनंतीवर कितीही शीर्षलेख जोडू शकता. आणि इतर कोणत्याही गोष्टीप्रमाणे हे करणे सोपे आहे. यासाठी एक विशेष पद्धत आहे - header() . उदाहरण:

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