java.net.URLConnection: HTTP अनुरोधों और प्रतिक्रियाओं के साथ कैसे काम करें

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: URLConnection Java डेवलपर के लिए क्यों जरूरी है

\n\n

क्या आपने कभी सोचा है कि आपका पसंदीदा ब्राउज़र या मोबाइल ऐप सर्वर से कैसे संवाद करता है? जादू सरल लेकिन शक्तिशाली HTTP अनुरोधों में छिपा है। और Java में इसके लिए एक 'स्विस आर्मी चाकू' है — क्लास java.net.URLConnection।

\n\n

हालाँकि Java 11 में एक नया मॉड्यूलर HttpClient आया है, दुनिया भर के हजारों डेवलपर पुराने और भरोसेमंद URLConnection का उपयोग जारी रखते हैं। क्यों? पहला, यह लीगेसी कोड है जिसे बनाए रखना आवश्यक है। दूसरा, यह सरल है और इसमें तीसरे पक्ष की लाइब्रेरी की आवश्यकता नहीं है। और तीसरा, निम्न स्तर पर HTTP अनुरोध कैसे काम करते हैं, यह समझना आपको एक सच्चा प्रोफेशनल बनाता है।

\n\n

इस लेख में हम केवल Stack Overflow से उत्तर कॉपी नहीं करेंगे। हम URLConnection के साथ काम करने के दो दृष्टिकोणों का विश्लेषण करेंगे और उनकी तुलना आधुनिक HttpClient से करेंगे। आप सीखेंगे कि GET और POST अनुरोध कैसे भेजें, त्रुटियों को कैसे संभालें, हेडर कैसे सेट करें और सर्वर प्रतिक्रियाएँ कैसे पढ़ें। चलिए शुरू करते हैं!

\n\n

java.net.URLConnection क्या है और इसकी आवश्यकता क्यों है?

\n\n

क्लास java.net.URLConnection एक अमूर्त क्लास है जो URL में निर्दिष्ट संसाधन के साथ एक सक्रिय कनेक्शन का प्रतिनिधित्व करता है। सरल शब्दों में: यह आपके Java एप्लिकेशन और इंटरनेट पर सर्वर के बीच एक पुल है। यह निम्नलिखित कार्य कर सकता है:

\n
    \n
  • सर्वर के साथ कनेक्शन खोलना
  • \n
  • डेटा भेजना (GET, POST, PUT, DELETE)
  • \n
  • सर्वर प्रतिक्रिया पढ़ना
  • \n
  • अनुरोध और प्रतिक्रिया हेडर प्रबंधित करना
  • \n
  • कुकीज़ के साथ काम करना
  • \n
\n\n

लेकिन एक बात है: URLConnection स्वयं कुछ नहीं करता। यह केवल एक तंत्र प्रदान करता है। सारा जादू इसके उपवर्ग करते हैं — उदाहरण के लिए, HTTP के साथ काम करने के लिए HttpURLConnection।

\n\n

दृष्टिकोण 1: HttpURLConnection के साथ क्लासिक तरीका (समय-परीक्षित)

\n\n

इस विधि का उपयोग Java प्रोग्रामिंग के संस्थापक पिताओं ने किया था। यह विश्वसनीय है, लेकिन इसमें मैन्युअल कार्य की आवश्यकता होती है। आइए इसे GET अनुरोध के उदाहरण से समझते हैं।

\n\n

उदाहरण 1: प्रतिक्रिया प्रसंस्करण के साथ GET अनुरोध

\n\n
import java.io.BufferedReader;\nimport java.io.InputStreamReader;\nimport java.net.HttpURLConnection;\nimport java.net.URL;\n\npublic class GetRequestExample {\n    public static void main(String[] args) throws Exception {\n        // 1. URL ऑब्जेक्ट बनाएं\n        URL url = new URL("https://api.github.com/users/octocat");\n        \n        // 2. कनेक्शन खोलें\n        HttpURLConnection connection = (HttpURLConnection) url.openConnection();\n        \n        // 3. अनुरोध कॉन्फ़िगर करें\n        connection.setRequestMethod("GET");\n        connection.setRequestProperty("User-Agent", "Mozilla/5.0");\n        connection.setConnectTimeout(5000);\n        connection.setReadTimeout(5000);\n        \n        // 4. प्रतिक्रिया कोड जांचें\n        int responseCode = connection.getResponseCode();\n        System.out.println("Response Code: " + responseCode);\n        \n        // 5. प्रतिक्रिया का मुख्य भाग पढ़ें\n        if (responseCode == HttpURLConnection.HTTP_OK) {\n            BufferedReader in = new BufferedReader(\n                new InputStreamReader(connection.getInputStream()));\n            String inputLine;\n            StringBuilder response = new StringBuilder();\n            \n            while ((inputLine = in.readLine()) != null) {\n                response.append(inputLine);\n            }\n            in.close();\n            \n            System.out.println("Response Body: " + response.toString());\n        } else {\n            System.out.println("GET request failed");\n        }\n        \n        // 6. कनेक्शन बंद करें\n        connection.disconnect();\n    }\n}\n
\n\n

कोड का विश्लेषण:

\n