5.15设置 HttpClient 实例的名称(多个基地址)

创建于 2026 年 8 月 17 日约 1 分钟读完

系统默认使用 IHttpClientFactory 创建 HttpClient 实例,并将默认客户端名称设为空字符串(string.Empty)。您可以通过 HttpClientNameAttribute 特性设置创建 HttpClient实例时的客户端名称。

HTTP 声明式请求通过 HttpClientNameAttribute 特性来设置 HttpClient 实例的名称。相应的 HTTP 声明式提取器实现为 HttpClientNameDeclarativeExtractor 类型,该类型负责解析 HttpClientNameAttribute 特性并构建 HttpRequestBuilder 实例所需的 HttpClient 实例的名称配置。

cs
// 在接口定义上应用,影响所有方法[HttpClientName(string.Empty)]public interface IHttpService : IHttpDeclarative{    [Get("https://furion.net/")]    Task<string> GetStringAsync();  // 默认客户端    // 在方法上应用    [HttpClientName("weixin")]   // 指定为名为 "weixin" 的客户端    [Get("https://furion.net/")]    Task<string> GetStringAsync();}

您还可以在 Startup.csProgram.cs 文件中为命名 HttpClient 客户端提供配置:

cs
// 配置默认客户端(名称为空字符串)services.AddHttpClient(string.Empty, client => { });// 配置名为 "weixin" 的客户端services.AddHttpClient("weixin", client => { });

HttpClientNameAttribute 包含以下构造函数和属性:

  • 构造函数

    • new(name):作用于方法或接口,设置 HttpClient 实例的名称。
  • 属性

    • NameHttpClient 实例的名称(string 类型)。