HttpClient ক্লাস HTTP রিকোয়েস্ট/রেসপন্স URL থেকে পাঠানো/গ্রহণের জন্য একটি বেস ক্লাস প্রদান করে। এটি .NET ফ্রেমওয়ার্কের একটি সাপোর্টেড অ্যাসিঙ্ক ফিচার। HttpClient একাধিক কনকারেন্ট রিকোয়েস্ট প্রসেস করতে পারে। এটি HttpWebRequest এবং HttpWebResponse-এর উপর একটি লেয়ার। HttpClient-এর সব মেথড অ্যাসিঙ্ক্রোনাস। HttpClient System.Net.Http নেমস্পেসে পাওয়া যায়।
আসুন একটি WebAPI অ্যাপ্লিকেশন তৈরি করি যাতে StudentController এবং সংশ্লিষ্ট অ্যাকশন মেথড থাকে।
Student মডেল
namespace DemoWebApplication.Models
{
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
}
}
Student কন্ট্রোলার
using DemoWebApplication.Models;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace DemoWebApplication.Controllers
{
public class StudentController : ApiController
{
List students = new List
{
new Student{ Id = 1, Name = "Mark" },
new Student{ Id = 2, Name = "John" }
};
public IEnumerable 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 এর এন্ডপয়েন্ট কল করা হয়েছে।