C# 使用HttpClient 发送HTTP请求

使用HttpClient 发送请求基本实例
演示如何发送 GET 请求和 POST 请求:

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

class Program
{
    static async Task Main(string[] args)
    {
        await SendGetRequest();
        await SendPostRequest();
    }

    static async Task SendGetRequest()
    {
        using (HttpClient client = new HttpClient())
        {
            try
            {
                HttpResponseMessage response = await client.GetAsync("https://api.example.com/data");
                response.EnsureSuccessStatusCode();

                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseBody);
            }
            catch (HttpRequestException ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
            }
        }
    }

    static async Task SendPostRequest()
    {
        using (HttpClient client = new HttpClient())
        {
            try
            {
                var postData = new FormUrlEncodedContent(new[]
                {
                    new KeyValuePair<string, string>("key1", "value1"),
                    new KeyValuePair<string, string>("key2", "value2")
                });

                HttpResponseMessage response = await client.PostAsync("https://api.example.com/endpoint", postData);
                response.EnsureSuccessStatusCode();

                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseBody);
            }
            catch (HttpRequestException ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
            }
        }
    }
}

发送带参数的 请求时 可以使用UriBuilder 类来构造

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

class Program
{
    static async Task Main(string[] args)
    {
        await SendGetRequestWithParams();
    }

    static async Task SendGetRequestWithParams()
    {
        using (HttpClient client = new HttpClient())
        {
            try
            {
                var builder = new UriBuilder("https://api.example.com/data");
                builder.Query = "param1=value1¶m2=value2";

                HttpResponseMessage response = await client.GetAsync(builder.Uri);
                response.EnsureSuccessStatusCode();

                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseBody);
            }
            catch (HttpRequestException ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
            }
        }
    }
}

你可以根据需要添加或删除查询参数。然后,我们将 UriBuilder.Uri 属性传递给 HttpClient.GetAsync 方法来发送 GET 请求。在响应中,我们读取响应正文并打印到控制台上。

你可能感兴趣的:(C#,c#,http,asp.net,webAPI)