3.57配置请求基地址
创建于 2026 年 8 月 17 日约 1 分钟读完
当需要对接多个第三方 API 时,我们通常会全局注册并配置多个 HttpClient 实例的 BaseAddress。例如:
// 配置默认客户端的基地址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(客户端名称) 方法指定要使用的客户端。
除了全局配置,框架还支持在单次请求中局部设置基地址的方法,允许在构建请求时动态指定:
// 使用字符串设置基地址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)。
- 若局部
- 未设置局部