HttpClient একটি URL থেকে HTTP অনুরোধ/প্রতিক্রিয়া পাঠানো/গ্রহণ করার জন্য ক্লাস একটি বেস ক্লাস প্রদান করে। এটি .NET ফ্রেমওয়ার্কের একটি সমর্থিত অ্যাসিঙ্ক বৈশিষ্ট্য। HttpClient একাধিক সমসাময়িক অনুরোধ প্রক্রিয়া করতে সক্ষম। এটি HttpWebRequest এবং HttpWebResponse এর উপর একটি স্তর। HttpClient সহ সমস্ত পদ্ধতি অসিঙ্ক্রোনাস। HttpClient System.Net.Http নামস্থানে উপলব্ধ৷
৷আসুন আমরা একটি স্টুডেন্ট কন্ট্রোলার এবং সংশ্লিষ্ট অ্যাকশন মেথড সহ একটি WebAPI অ্যাপ্লিকেশন তৈরি করি।
স্টুডেন্ট মডেল
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; } } }
এখন, আসুন একটি কনসোল অ্যাপ্লিকেশন তৈরি করি যেখানে আমরা শিক্ষার্থীদের বিশদ বিবরণ পেতে উপরের তৈরি WebApi শেষ পয়েন্টগুলি ব্যবহার করতে চাই৷
উদাহরণ
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-এর শেষ পয়েন্টগুলি আলাদা কনসোল অ্যাপ্লিকেশন থেকে কল করা হয়েছে৷