Truyền Authentication Header Token khi POST dữ liệu tới API bằng C#
Hướng dẫn cách truyền Authentication Header Token khi gửi yêu cầu POST tới API bằng ngôn ngữ lập trình C# bằng cách sử dụng HttpClient
và Bearer Token
.
Trong bài viết này, bạn sẽ học cách truyền Authentication Header Token khi thực hiện yêu cầu POST tới một API sử dụng ngôn ngữ C#. Chúng ta sẽ sử dụng lớp HttpClient
để gửi dữ liệu kèm với Bearer Token
trong phần tiêu đề (header) của yêu cầu.
Mã C#:
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// URL API
var apiUrl = "https://example.com/api/data";
// Token của bạn
var token = "your_token_here";
// Dữ liệu POST
var jsonData = "{\"name\":\"John Doe\",\"age\":30}";
using (var client = new HttpClient())
{
// Truyền Authentication Header với Bearer Token
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
// Tạo HttpContent từ dữ liệu JSON
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
// Gửi yêu cầu POST
var response = await client.PostAsync(apiUrl, content);
// Kiểm tra kết quả
if (response.IsSuccessStatusCode)
{
var responseData = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Phản hồi từ API: {responseData}");
}
else
{
Console.WriteLine($"Yêu cầu thất bại. Mã trạng thái: {response.StatusCode}");
}
}
}
}
Giải thích chi tiết từng dòng code:
using System.Net.Http
: Sử dụng namespaceSystem.Net.Http
để làm việc vớiHttpClient
.var apiUrl = "https://example.com/api/data";
: Địa chỉ URL API mà bạn muốn gửi dữ liệu tới.var token = "your_token_here";
: Gán token vào biếntoken
.client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
: Truyền token vào Authentication Header dưới dạng "Bearer".var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
: Tạo một đối tượngHttpContent
từ dữ liệu JSON để gửi cùng với yêu cầu.var response = await client.PostAsync(apiUrl, content);
: Gửi yêu cầu POST đến API cùng với dữ liệu JSON và token trong header.if (response.IsSuccessStatusCode)
: Kiểm tra xem yêu cầu có thành công hay không và xử lý kết quả phản hồi.
Yêu cầu hệ thống:
- .NET Core 3.1 trở lên hoặc .NET Framework 4.5 trở lên.
Cách cài đặt:
Sử dụng lệnh sau để tạo một dự án .NET Core Console:
dotnet new console -n MyHttpClientApp
Lời khuyên:
- Luôn kiểm tra tính hợp lệ của token trước khi gửi yêu cầu.
- Sử dụng
try-catch
để xử lý các lỗi có thể xảy ra khi gửi yêu cầu HTTP.