3.57配置请求基地址

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

当需要对接多个第三方 API 时,我们通常会全局注册并配置多个 HttpClient 实例的 BaseAddress。例如:

cs
// 配置默认客户端的基地址services.AddHttpClient(string.Empty, client =>{    client.BaseAddress = new Uri("https://furion.net/");});// 配置GitHub客户端的基地址services.AddHttpClient("github", client =>{    client.BaseAddress = new Uri("https://github.com/");});

随后可通过 .SetHttpClientName(客户端名称) 方法指定要使用的客户端。

除了全局配置,框架还支持在单次请求中局部设置基地址的方法,允许在构建请求时动态指定:

cs
// 使用字符串设置基地址HttpRequestBuilder.Get("/api/test")    .SetBaseAddress("https://furion.net");// 使用 Uri 对象设置基地址HttpRequestBuilder.Get("/api/test")    .SetBaseAddress(new Uri("https://furion.net"));// 可充当前缀使用HttpRequestBuilder.Get("/api/test")    .SetBaseAddress("/furion");

处理逻辑说明

  • 若请求地址为绝对地址,则直接使用该地址发送请求。
  • 若请求地址为相对地址:
    • 未设置局部 BaseAddress 时,将其与全局 HttpClient 实例的 BaseAddress 拼接,作为最终请求地址。
    • 已设置局部 BaseAddress 时:
      • 若局部 BaseAddress 为相对地址,则先将局部 BaseAddress 拼接到请求地址前,再与全局 BaseAddress 拼接。
      • 若局部 BaseAddress 为绝对地址,则直接将该绝对地址与请求地址拼接,作为最终请求地址(此时忽略全局 BaseAddress)。