📜  c# 发出 http 请求 - C# (1)

📅  最后修改于: 2023-12-03 14:59:41.823000             🧑  作者: Mango

C# 发出 HTTP 请求

在 C# 中,我们可以使用 HttpClient 类来发出 HTTP 请求并处理响应。本文将向你介绍如何使用 HttpClient 类发送 GET、POST 请求,并解析响应数据。

发出 GET 请求
using System;
using System.Net.Http;
using System.Threading.Tasks;

namespace HttpClientDemo
{
    class Program
    {
        static async Task Main(string[] args)
        {
            using (var httpClient = new HttpClient())
            {
                HttpResponseMessage response = await httpClient.GetAsync("https://api.example.com/users");
                response.EnsureSuccessStatusCode(); // 确保响应成功

                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseBody);
            }
        }
    }
}

上述代码中,我们首先创建了一个 HttpClient 实例,然后使用 GetAsync 方法发送 GET 请求。通过 ReadAsStringAsync 方法可以将响应内容读取为字符串。最后,我们将字符串输出到控制台。

发出 POST 请求
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

namespace HttpClientDemo
{
    class Program
    {
        static async Task Main(string[] args)
        {
            using (var httpClient = new HttpClient())
            {
                var requestData = new { Name = "John", Age = 25 };
                var content = new StringContent(JsonConvert.SerializeObject(requestData), Encoding.UTF8, "application/json");

                HttpResponseMessage response = await httpClient.PostAsync("https://api.example.com/users", content);
                response.EnsureSuccessStatusCode(); // 确保响应成功

                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseBody);
            }
        }
    }
}

上述代码中,我们使用了 POST 请求发送 JSON 数据。首先,我们创建了一个包含请求数据的匿名对象 requestData,然后使用 JsonConvert.SerializeObject 方法将其序列化为 JSON 字符串。接着,我们将 JSON 字符串放入 StringContent 对象中,指定内容类型为 application/json。最后,我们使用 PostAsync 方法发送 POST 请求并读取响应内容。

请确保在使用上述代码时,替换掉示例中的请求 URL 和数据。

希望本文对你有帮助!