Cách GET lấy dữ liệu từ Web API C#

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 trong Web API C#.

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.

 

Cách lấy dữ liệu từ Web API C# bằng phương thức GET.

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.

 

Code C# lấy dữ liệu từ Web API của nhân viên như sau:

Ví dụ

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ả :

-Kết quả truy vấn và lấy dữ liệu của tất cả các nhân viên thông qua Web API như sau:

 

-Kết quả truy vấn và lấy dữ liệu của một nhân viên thông qua Web API như sau: