जावा में HTTP क्लाइंट: सही तरीके से अनुरोध करना

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

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

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

Java में HTTP क्लाइंट: सही तरीके से अनुरोध करना



आधुनिक विकास में, लगभग हर एप्लिकेशन HTTP के माध्यम से बाहरी सेवाओं के साथ इंटरैक्ट करता है। चाहे वह REST API हो, सर्वर से डेटा लोड करना हो या फॉर्म सबमिट करना हो — HTTP अनुरोधों के साथ काम करने की क्षमता Java डेवलपर के लिए एक अनिवार्य कौशल है। इस लेख में, हम मानक टूल और लोकप्रिय तृतीय-पक्ष लाइब्रेरी दोनों का उपयोग करके Java में HTTP क्लाइंट बनाने का तरीका समझेंगे। आप सीखेंगे कि GET और POST अनुरोधों को सही तरीके से कैसे निष्पादित करें, त्रुटियों को कैसे संभालें और प्रतिक्रियाओं को पार्स करें।



1. क्लासिक दृष्टिकोण: HttpURLConnection



लंबे समय तक, Java में HTTP के साथ काम करने का मानक तरीका HttpURLConnection क्लास था। यह java.net पैकेज में आता है और इसमें अतिरिक्त निर्भरताएँ स्थापित करने की आवश्यकता नहीं होती है। आइए GET अनुरोध निष्पादित करने का एक उदाहरण देखें:



import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;

public class SimpleHttpClient { public static void main(String[] args) throws Exception { URL url = new URL("https://api.example.com/data"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("Accept", "application/json");

int responseCode = connection.getResponseCode(); System.out.println("Response Code: " + responseCode);

if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; StringBuilder response = new StringBuilder();

while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println("Response: " + response.toString()); } else { System.out.println("GET request failed"); } connection.disconnect(); }}


JSON डेटा भेजने के साथ POST अनुरोध के लिए, कोड थोड़ा अधिक जटिल होगा:



import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;

public class PostExample { public static void main(String[] args) throws Exception { URL url = new URL("https://api.example.com/users"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/json"); connection.setDoOutput(true);

String jsonInput = "{\\"name\\":\\"John\\",\\"email\\":\\"john@example.com\\"}";

try (OutputStream os = connection.getOutputStream()) { byte[] input = jsonInput.getBytes("utf-8"); os.write(input, 0, input.length); }

int responseCode = connection.getResponseCode(); System.out.println("POST Response Code: " + responseCode);

if (responseCode == HttpURLConnection.HTTP_CREATED) { // प्रतिक्रिया पढ़ना GET के समान है } connection.disconnect(); }}


HttpURLConnection के लाभ:

  • अतिरिक्त लाइब्रेरी की आवश्यकता नहीं है
  • अनुरोध पर पूर्ण नियंत्रण
  • सभी HTTP विधियों के लिए समर्थन


नुकसान:

  • वर्बोज़ और असुविधाजनक API
  • त्रुटियों को संभालना कठिन
  • आधुनिक प्रोटोकॉल (HTTP/2) के लिए अंतर्निहित समर्थन नहीं


2. आधुनिक मानक: HttpClient (Java 11+)



Java 11 से शुरू करके, मानक लाइब्रेरी में एक नया java.net.http.HttpClient जोड़ा गया है। यह एक आधुनिक, एसिंक्रोनस और अधिक सुविधाजनक API प्रदान करता है। इसकी मदद से GET अनुरोध इस प्रकार दिखता है:



import java.net.URI;import java.net.http.HttpClient;import java.net.ht
```                

ब्लॉग

पुस्तक अनुशंसाएँ