6.64与 DelegatingHandler 的协作关系

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

当你通过 services.AddHttpClient() 创建 HttpClient 时,.NET 默认会为你提供一个 HttpClientHandler 作为管道的“终点”。所有通过 .AddHttpMessageHandler<T>() 添加的 DelegatingHandler 实例,都会被包装在 HttpClientHandler 之外,形成如下调用链:

text
CustomHandler3 → CustomHandler2 → CustomHandler1 → HttpClientHandler → 网络

也就是说:

  • 请求从最外层的 DelegatingHandler 开始,逐层向内传递;
  • 响应则从 HttpClientHandler 返回后,逐层向外回传;
  • HttpClientHandler 是唯一真正发出网络请求的组件。