Gửi một yêu cầu HTTP

C#:
Gửi một yêu cầu HTTP

Cách thực hiện:

C# làm cho việc gửi yêu cầu HTTP trở nên đơn giản với HttpClient. Dưới đây là bộ xương của một yêu cầu GET:

using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        using HttpClient client = new HttpClient();
        HttpResponseMessage response = await client.GetAsync("http://example.com");
        response.EnsureSuccessStatusCode();
        string responseBody = await response.Content.ReadAsStringAsync();
        
        Console.WriteLine(responseBody);
    }
}

Mẫu đầu ra (được rút gọn):

<!doctype html>
<html>
<head>
    <title>Example Domain</title>
...

Thảo luận sâu hơn

HttpClient được giới thiệu trong .NET Framework 4.5 để làm cho giao tiếp HTTP trở nên dễ dàng hơn. Trước đó, bạn có lẽ phải vật lộn với các lớp HttpWebRequestHttpWebResponse, chúng phức tạp hơn.

Có các cách khác để gửi yêu cầu HTTP trong C#. RestSharpFlurl là hai thư viện bên thứ ba phổ biến, cung cấp một giao diện trực quan hơn và các tính năng bổ sung. Nhưng HttpClient thường đủ đáp ứng cho hầu hết các nhu cầu.

Về mặt triển khai, HttpClient được thiết kế để tái sử dụng cho nhiều yêu cầu. Khởi tạo nó cho mỗi yêu cầu có thể làm cạn kiệt số lượng socket có sẵn dưới gánh nặng lớn. Luôn, và tôi muốn nói là luôn, chú ý đến việc xử lý đúng cách đối tượng HttpClient để tránh rò rỉ tài nguyên.

Xem thêm