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

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

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

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

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

\n\n

.NET प्लेटफ़ॉर्म पर आधुनिक विकास में, HTTP-अनुरोधों के साथ काम करना एक प्रमुख कार्य है। चाहे वह बाहरी REST API के साथ एकीकरण हो, सर्वर पर डेटा भेजना हो या वेब पेज लोड करना हो - C# में HttpClient का सही उपयोग एप्लिकेशन के प्रदर्शन और स्थिरता के लिए महत्वपूर्ण है। इस लेख में, हम C# में HTTP क्लाइंट के साथ काम करने के सभी पहलुओं को कवर करेंगे: बुनियादी उदाहरणों से लेकर उन्नत तकनीकों, त्रुटि प्रबंधन और सर्वोत्तम प्रथाओं तक।

\n\n

1. C# में HttpClient के साथ काम करने की मूल बातें

\n\n

HttpClient HTTP अनुरोध भेजने और प्रतिक्रिया प्राप्त करने के लिए .NET में मुख्य वर्ग है। यह System.Net.Http नेमस्पेस में स्थित है और .NET Framework 4.5 और .NET Core/.NET 5+ के सभी संस्करणों से उपलब्ध है।

\n\n

महत्वपूर्ण नियम: HttpClient पुन: उपयोग के लिए डिज़ाइन किया गया है। प्रत्येक अनुरोध के लिए एक नया इंस्टेंस बनाना एक एंटी-पैटर्न है, जो सॉकेट थकावट (socket exhaustion) का कारण बन सकता है। इसके बजाय, एक स्थिर या सिंगलटन इंस्टेंस का उपयोग करें।

\n\n

GET अनुरोध का मूल उदाहरण:

\n\n
using System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\n\nclass Program\n{\n    private static readonly HttpClient client = new HttpClient();\n\n    static async Task Main(string[] args)\n    {\n        try\n        {\n            HttpResponseMessage response = await client.GetAsync("https://api.example.com/data");\n            response.EnsureSuccessStatusCode();\n            string responseBody = await response.Content.ReadAsStringAsync();\n            Console.WriteLine(responseBody);\n        }\n        catch (HttpRequestException e)\n        {\n            Console.WriteLine($"अनुरोध त्रुटि: {e.Message}");\n        }\n    }\n}
\n\n

इस उदाहरण में, हम एक स्थिर HttpClient बनाते हैं, GET अनुरोध भेजते हैं, EnsureSuccessStatusCode() के साथ प्रतिक्रिया की सफलता की जांच करते हैं और प्रतिक्रिया बॉडी को स्ट्रिंग के रूप में पढ़ते हैं।

\n\n

2. HTTP अनुरोधों के प्रकार और हेडर के साथ काम करना

\n\n

GET के अलावा, HttpClient सभी बुनियादी HTTP विधियों का समर्थन करता है: POST, PUT, DELETE, PATCH और अन्य। आइए JSON डेटा के साथ POST अनुरोध भेजने पर विचार करें - REST API के साथ काम करते समय यह सबसे आम परिदृश्य है।

\n\n

JSON के साथ POST अनुरोध का उदाहरण:

\n\n
using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Text.Json;\nusing System.Threading.Tasks;\n\nclass Program\n{\n    private static readonly HttpClient client = new HttpClient();\n\n    static async Task Main(string[] args)\n    {\n        var data = new { Name = "John", Age = 30 };\n        string json = JsonSerializer.Serialize(data);\n        var content = new StringContent(json, Encoding.UTF8, "application/json");\n\n        try\n        {\n            HttpResponseMessage response = await client.PostAsync("https://api.example.com/users", content);\n            response.EnsureSuccessStatusCode();\n            string result = await response.Content.ReadAsStringAsync();\n            Console.WriteLine($"उपयोगकर्ता बनाया गया: {result}");\n        }\n        catch (HttpRequestException e)\n        {\n            Console.WriteLine($"त्रुटि: {e.Message}");\n        }\n    }\n}
\n\n

हेडर के साथ काम करना: अक्सर API को प्रमाणीकरण टोकन या अन्य हेडर भेजने की आवश्यकता होती है। उन्हें दो तरीकों से जोड़ा जा सकता है:

\n\n
    \n
  • वैश्विक रूप से — DefaultRequestHeaders प्रॉपर्टी के माध्यम से (क्लाइंट के सभी अनुरोधों के लिए)।
  • \n
  • स्थानीय रूप से — HttpRequestMessage ऑब्जेक्ट में Headers संग्रह के माध्यम से (विशिष्ट अनुरोध के लिए)।
  • \n
\n\n

Authorization हेडर जोड़ने का उदाहरण:

\n\n
// वैश्विक रूप से\nclient.DefaultRequestHeaders.Authorization = \n    new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "your-token");\n\n// स्थानीय रूप से\nvar request = new HttpR                

ब्लॉग

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