5.15设置 HttpClient 实例的名称(多个基地址)
创建于 2026 年 8 月 17 日约 1 分钟读完
系统默认使用 IHttpClientFactory 创建 HttpClient 实例,并将默认客户端名称设为空字符串(string.Empty)。您可以通过 HttpClientNameAttribute 特性设置创建 HttpClient实例时的客户端名称。
HTTP 声明式请求通过 HttpClientNameAttribute 特性来设置 HttpClient 实例的名称。相应的 HTTP 声明式提取器实现为 HttpClientNameDeclarativeExtractor 类型,该类型负责解析 HttpClientNameAttribute 特性并构建 HttpRequestBuilder 实例所需的 HttpClient 实例的名称配置。
// 在接口定义上应用,影响所有方法[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.cs 或 Program.cs 文件中为命名 HttpClient 客户端提供配置:
// 配置默认客户端(名称为空字符串)services.AddHttpClient(string.Empty, client => { });// 配置名为 "weixin" 的客户端services.AddHttpClient("weixin", client => { });HttpClientNameAttribute 包含以下构造函数和属性:
-
构造函数:
new(name):作用于方法或接口,设置HttpClient实例的名称。
-
属性:
Name:HttpClient实例的名称(string类型)。