专业编程基础技术教程

网站首页 > 基础教程 正文

C# HTTP请求类HttpClient的使用样例

ccvgpt 2024-12-28 11:47:09 基础教程 1 ℃

#首发创作赛#

C# HttpClient 是一个用于发送 HTTP 请求并接收响应的类。它是 .NET Framework 中的一部分,并在 .NET Core 和 .NET 5+ 中得到了改进和增强。

C# HTTP请求类HttpClient的使用样例

使用HttpClient可以执行各种 HTTP 操作,如发送 GET、POST、PUT、DELETE 等请求,并处理响应数据。它提供了许多方法和属性,可以自定义请求、设置请求头、处理响应等。

以下是一些常见的 HttpClient 功能和用法:

  • 发送 GET 请求:
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main()
    {
        using (HttpClient client = new HttpClient())
        {
            HttpResponseMessage response = await client.GetAsync("https://api.example.com");
            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;

public class Program
{
    public static async Task Main()
    {
        using (HttpClient client = new HttpClient())
        {
            string requestBody = "{\"username\":\"admin\",\"password\":\"123456\"}";
            StringContent content = new StringContent(requestBody, Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync("https://api.example.com/login", content);
            string responseBody = await response.Content.ReadAsStringAsync();
            Console.WriteLine(responseBody);
        }
    }
}

在示例中使用 PostAsync 方法发送一个 POST 请求,并将请求体作为 JSON 字符串发送。

  • 自定义请求头和超时设置:
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main()
    {
        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Authorization", "Bearer token");
            client.Timeout = TimeSpan.FromSeconds(10);

            HttpResponseMessage response = await client.GetAsync("https://api.example.com");
            string responseBody = await response.Content.ReadAsStringAsync();
            Console.WriteLine(responseBody);
        }
    }
}

在示例中通过 DefaultRequestHeaders 属性添加自定义的 Authorization 请求头,并使用 Timeout 属性设置请求的超时时间。

这只是 HttpClient 的一些常见用法示例,您可以根据需要进行更多的自定义和配置。

在使用 HttpClient 时,应该使用 using 语句来确保 HttpClient 对象在使用完毕后被正确释放。

在项目中使用时,一般用单例模式或者依赖注入的方式。

C# HTTP请求类HttpClient的依赖注入

C# HTTP请求类HttpClient的单例模式

Tags:

最近发表
标签列表