एचटीपी क्लाइंट क्लास यूआरएल से HTTP अनुरोध/प्रतिक्रिया भेजने/प्राप्त करने के लिए बेस क्लास प्रदान करता है। यह .NET ढांचे की एक समर्थित एसिंक सुविधा है। HttpClient कई समवर्ती अनुरोधों को संसाधित करने में सक्षम है। यह HttpWebRequest और HttpWebResponse पर एक परत है। HttpClient के साथ सभी विधियां अतुल्यकालिक हैं। HttpClient System.Net.Http नेमस्पेस में उपलब्ध है।
आइए हम एक छात्र नियंत्रक और संबंधित क्रियाविधियों वाला एक वेबएपीआई एप्लिकेशन बनाएं।
छात्र मॉडल
namespace DemoWebApplication.Models{ public class Student{ public int Id { get; set; } public string Name { get; set; } } }
छात्र नियंत्रक
using DemoWebApplication.Models; using System.Collections.Generic; using System.Linq; using System.Web.Http; namespace DemoWebApplication.Controllers{ public class StudentController : ApiController{ List<Student> students = new List<Student>{ new Student{ Id = 1, Name = "Mark" }, new Student{ Id = 2, Name = "John" } }; public IEnumerable<Student> Get(){ return students; } public Student Get(int id){ var studentForId = students.FirstOrDefault(x => x.Id == id); return studentForId; } } }
अब, एक कंसोल एप्लिकेशन create बनाएं जहां हम छात्र विवरण प्राप्त करने के लिए उपरोक्त बनाए गए वेबएपी एंडपॉइंट्स का उपभोग करना चाहते हैं।
उदाहरण
using System; using System.Net.Http; namespace DemoApplication{ public class Program{ static void Main(string[] args){ using (var httpClient = new HttpClient()){ Console.WriteLine("Calling WebApi for get all students"); var students = GetResponse("student"); Console.WriteLine($"All Students: {students}"); Console.WriteLine("Calling WebApi for student id 2"); var studentForId = GetResponse("student/2"); Console.WriteLine($"Student for Id 2: {students}"); Console.ReadLine(); } } private static string GetResponse(string url){ using (var httpClient = new HttpClient()){ httpClient.BaseAddress = new Uri("https://localhost:58174/api/"); var responseTask = httpClient.GetAsync(url); var result = responseTask.Result; var readTask = result.Content.ReadAsStringAsync(); return readTask.Result; } } } }
आउटपुट
Calling WebApi for get all students All Students: [{"Id":1,"Name":"Mark"},{"Id":2,"Name":"John"}] Calling WebApi for student id 2 Student for Id 2: {"Id":2,"Name":"John"}
उपरोक्त उदाहरण में हम देख सकते हैं कि WebApi के एंडपॉइंट्स को अलग कंसोल एप्लिकेशन से कॉल किया जाता है।