Làm thế nào để lấy dữ liệu từ Web API trong C# ? Khi làm việc với Web API điều đầu tiên các bạn thường cần làm là lấy dữ liệu từ Web API về hoặc đẩy dữ liệu lên Web API.Trong bài này chúng tôi sẽ hướng dẫn các bạn cách lấy dữ liệu từ Web API sử dụng ngôn ngữ C# bằng phương thức GET.
Phương thức GET được sử dụng để request data (gửi yêu cầu dữ liệu).
Cách gửi yêu cầu request trong url như sau:
Ví dụ: string url = "https://localhost:44308/api/Employee/GET_ALLEmployees";
Phương thức GET có đặc điểm là khi gửi request nó sẽ lưu cached, lưu lịch sử, có thể Bookmarked trong trình duyệt Browser.Do đó nó không bảo mật bằng phương thức POST.
Để sử dụng phương thức GET bạn cần sử dụng giao thức HTTP (Hypertext Transfer Protocol) để truyền dữ liệu giữa Client và Server.
Giả sử yêu cầu bài toán của chúng ta cần lấy dữ liệu thông tin của nhân viên từ Web API và sau đó hiển thị dữ liệu của nhân viên lên DataGridview trong Window Form.
Để giải bài toán này chúng ta tạo project WindowForm tên là GetData_WebAPI và tạo Form GetData_WebAPI.cs như sau:
Giải thích :
Textbox txt_Manhanvien là ô để nhập mã nhân viên cần lấy thông tin về Form.
Nút Button btn_GetData ( Get Employee) là để lấy thông tin nhân viên từ Web API theo mã nhân viên.
Nut Button btn_GetAllNhanvien (Get All Employees) là để lấy thông tin của tất cả các nhân viên từ Web API.
DataGridview dtg_Thontinnhanvien là để hiện danh sách thông tin nhân viên đã lấy về từ Web API.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using Newtonsoft.Json;
using System.Threading.Tasks;
using System.IO;
namespace GetData_WebAPI
{
public partial class GetData_WebAPI : Form
{
public GetData_WebAPI()
{
InitializeComponent();
}
// Lấy thông tin của tất cả các nhân viên
private void btn_GetAllNhanvien_Click(object sender, EventArgs e)
{
Get_Employee_Informations();
}
private async void Get_Employee_Informations()
{
string url = "https://localhost:44308/api/Employee/GET_ALLEmployees";
List<Employee> list_Nhanvien = new List<Employee>();
using (var client = new HttpClient())
{
using (var response = await client.GetAsync(url))
{
if (response.IsSuccessStatusCode)
{
var str_Json = await response.Content.ReadAsStringAsync();
dtg_Thontinnhanvien.DataSource = JsonConvert.DeserializeObject<Employee[]>(str_Json).ToList();
}
}
}
}
// Lấy thông tin của một nhân viên theo mã nhân viên
private void btn_GetData_Click(object sender, EventArgs e)
{
Get_EmployeeByID();
}
private async void Get_EmployeeByID()
{
string Emp_ID = txt_Manhanvien.Text.Trim();
string url = "https://localhost:44308/api/Employee/GET_EmployeesByID/"+Emp_ID;
List<Employee> list_Nhanvien = new List<Employee>();
using (var client = new HttpClient())
{
using (var response = await client.GetAsync(url))
{
if (response.IsSuccessStatusCode)
{
var str_Json = await response.Content.ReadAsStringAsync();
dtg_Thontinnhanvien.DataSource = JsonConvert.DeserializeObject<Employee[]>(str_Json).ToList();
}
}
}
}
}
}
Chạy chương trình và kiểm tra kết quả :