C# (.NET) के लिए HTTP-क्लाइंट: वेब अनुरोधों के लिए शीर्ष लाइब्रेरीज़

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

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

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

C# (.NET) के लिए HTTP-क्लाइंट: सर्वश्रेष्ठ लाइब्रेरीज़ का अवलोकन

\n\n

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

\n\n

1. HttpClient (.NET में अंतर्निहित)

\n\n

HttpClient — यह System.Net.Http नेमस्पेस से एक मानक क्लास है, जो .NET के सभी संस्करणों (.NET Core, .NET 5/6/7/8 सहित) में उपलब्ध है। यह वह आधार है जिस पर अन्य सभी लाइब्रेरीज़ निर्मित हैं।

\n\n

लाभ:

\n
    \n
  • अतिरिक्त पैकेज स्थापित करने की आवश्यकता नहीं है (BCL में शामिल)।
  • \n
  • अनुरोध भेजने की प्रक्रिया पर पूर्ण नियंत्रण।
  • \n
  • HTTP/1.1, HTTP/2, HTTP/3 के लिए समर्थन।
  • \n
  • gzip/deflate संपीड़न के लिए अंतर्निहित समर्थन।
  • \n
  • स्ट्रीम (streaming) के साथ कार्य करने की क्षमता।
  • \n
\n\n

कमियाँ:

\n
    \n
  • पुनः प्रयासों (retry) के मैन्युअल प्रबंधन की आवश्यकता है।
  • \n
  • JSON क्रमांकन/विक्रमांकन (serialization/deserialization) अंतर्निहित नहीं है।
  • \n
  • सामान्य संचालन के लिए वर्बोज़ कोड।
  • \n
\n\n

उपयोग का उदाहरण:

\n
using System.Net.Http;\nusing System.Text.Json;\nusing System.Threading.Tasks;\n\npublic class UserClient\n{\n    private readonly HttpClient _httpClient;\n\n    public UserClient()\n    {\n        _httpClient = new HttpClient();\n        _httpClient.BaseAddress = new Uri("https://jsonplaceholder.typicode.com");\n    }\n\n    public async Task<User> GetUserAsync(int id)\n    {\n        var response = await _httpClient.GetAsync($"/users/{id}");\n        response.EnsureSuccessStatusCode();\n        var json = await response.Content.ReadAsStringAsync();\n        return JsonSerializer.Deserialize<User>(json);\n    }\n\n    public async Task<User> CreateUserAsync(User user)\n    {\n        var json = JsonSerializer.Serialize(user);\n        var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");\n        var response = await _httpClient.PostAsync("/users", content);\n        response.EnsureSuccessStatusCode();\n        var responseJson = await response.Content.ReadAsStringAsync();\n        return JsonSerializer.Deserialize<User>(responseJson);\n    }\n}\n\npublic class User\n{\n    public int Id { get; set; }\n    public string Name { get; set; }\n    public string Email { get; set; }\n}
\n\n

2. RestSharp

\n\n

RestSharp — REST API के साथ काम करने के लिए सबसे पुरानी और सबसे लोकप्रिय लाइब्रेरीज़ में से एक है। यह एक सुविधाजनक fluent-इंटरफ़ेस, स्वचालित JSON और XML क्रमांकन/विक्रमांकन, साथ ही अंतर्निहित त्रुटि प्रबंधन प्रदान करता है।

\n\n

लाभ:

\n
    \n
  • सरल और सहज API।
  • \n
  • स्वचालित क्रमांकन/विक्रमांकन।
  • \n
  • प्रमाणीकरण (Basic, OAuth, JWT) के लिए अंतर्निहित समर्थन।
  • \n
  • फ़ाइल अपलोड (multipart/form-data) के लिए समर्थन।
  • \n
  • त्रुटि प्रबंधन और पुनः प्रयासों की लचीली प्रणाली।
  • \n
\n\n

कमियाँ:

\n
    \n
  • बाहरी पैकेज पर निर्भरता (NuGet: RestSharp)।
  • \n
  • कुछ परिदृश्यों के लिए HTTP को अनावश्यक रूप से अमूर्त करता है।
  • \n
\n\n

उपयोग का उदाहरण:

\n
using RestSharp;\nusing System.Threading.Tasks;\n\npublic class UserClient\n{\n    private readonly RestClient _client;\n\n    public UserClient()\n    {\n        _client = new RestClient("https://jsonplaceholder.typicode.com");\n    }\n\n    public async Task<User> GetUserAsync(int id)\n    {\n        var request = new RestRequ                    

अनुशंसाएँ