From 3c30482167226bd2492abc18c407c73da433ae95 Mon Sep 17 00:00:00 2001 From: bicijinlian Date: Thu, 15 May 2025 15:06:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docs/0.目录结构.ipynb | 13 +- Docs/1.1.概述.ipynb | 77 +- ....ipynb => 1.4.1.高级使用.概述.ipynb} | 26 +- Docs/1.4.2.高级使用.使用管道.ipynb | 710 ++++++++++++++++++ ...4.3.高级使用.类型化客户端.ipynb} | 0 Docs/1.4.4.高级使用.使用管道.ipynb | 58 -- ... => 1.4.4.高级使用.工厂模式.ipynb} | 0 ....ipynb => 1.4.5.高级使用.Polly.ipynb} | 0 ....4.5.高级使用.类型化客户端.ipynb | 58 -- Docs/1.4.6.高级使用.工厂模式.ipynb | 58 -- Docs/1.4.7.高级使用.Polly.ipynb | 58 -- Docs/Assets/1.jpg | Bin 0 -> 37987 bytes Docs/Assets/HttpClient-使用管道.jpg | Bin 0 -> 267586 bytes .../HttpClients/HttpMessageHandlerBuilder.cs | 90 +++ .../HttpClients/PipelineClientTest.cs | 28 + 15 files changed, 920 insertions(+), 256 deletions(-) rename Docs/{1.4.3.高级使用.重复使用.ipynb => 1.4.1.高级使用.概述.ipynb} (69%) create mode 100644 Docs/1.4.2.高级使用.使用管道.ipynb rename Docs/{1.4.0.高级使用.概述.ipynb => 1.4.3.高级使用.类型化客户端.ipynb} (100%) delete mode 100644 Docs/1.4.4.高级使用.使用管道.ipynb rename Docs/{1.4.1.高级使用.初始化.ipynb => 1.4.4.高级使用.工厂模式.ipynb} (100%) rename Docs/{1.4.2.高级使用.连接池.ipynb => 1.4.5.高级使用.Polly.ipynb} (100%) delete mode 100644 Docs/1.4.5.高级使用.类型化客户端.ipynb delete mode 100644 Docs/1.4.6.高级使用.工厂模式.ipynb delete mode 100644 Docs/1.4.7.高级使用.Polly.ipynb create mode 100644 Docs/Assets/1.jpg create mode 100644 Docs/Assets/HttpClient-使用管道.jpg create mode 100644 HttpClientStudy.UnitTest/HttpClients/HttpMessageHandlerBuilder.cs diff --git a/Docs/0.目录结构.ipynb b/Docs/0.目录结构.ipynb index 6c4f041..a9d4c40 100644 --- a/Docs/0.目录结构.ipynb +++ b/Docs/0.目录结构.ipynb @@ -84,14 +84,11 @@ "id": "746fd7e5", "metadata": {}, "source": [ - "+ [概述](./1.4.0.高级使用.概述.ipynb)\n", - "+ [初始化](./1.4.1.高级使用.初始化.ipynb)\n", - "+ [连接池](./1.4.2.高级使用.连接池.ipynb)\n", - "+ [重复使用](./1.4.3.高级使用.重复使用.ipynb)\n", - "+ [使用管道](./1.4.4.高级使用.使用管道.ipynb)\n", - "+ [类型化客户端](./1.4.5.高级使用.类型化客户端.ipynb)\n", - "+ [工厂模式](./1.4.6.高级使用.工厂模式.ipynb)\n", - "+ [Polly库](./1.4.7.高级使用.Polly.ipynb)" + "+ [概述](./1.4.1.高级使用.概述.ipynb)\n", + "+ [使用管道](./1.4.2.高级使用.使用管道.ipynb)\n", + "+ [类型化客户端](./1.4.3.高级使用.类型化客户端.ipynb)\n", + "+ [工厂模式](./1.4.4.高级使用.工厂模式.ipynb)\n", + "+ [Polly库](./1.4.5.高级使用.Polly.ipynb)" ] }, { diff --git a/Docs/1.1.概述.ipynb b/Docs/1.1.概述.ipynb index e7fe202..6d2a3e7 100644 --- a/Docs/1.1.概述.ipynb +++ b/Docs/1.1.概述.ipynb @@ -89,26 +89,70 @@ } }, "source": [ - "## HttpClient架构图\n", - "\n", - "### .NetFramework 4及4.5 架构\n", + "## HttpClient架构图" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### .NetFramework 4及4.5 架构" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "HttpClient最初是作为NuGet包提供的,该包可以选择包含在.NET Framework 4.0项目中。在.NET Framework 4.5中,它作为BCL(基本类库)的一部分在框中提供。它建立在预先存在的HttpWebRequest实现之上。在.NET Framework中,ServicePoint API可用于控制和管理HTTP连接,包括通过为端点配置ConnectionLeaseTimeout来设置连接寿命。\n", "\n", - "![.NetFramework](./Assets/架构.001.png)\n", - "\n", - "### .NET Core 1.0及1.1 架构\n", + "![.NetFramework](./Assets/架构.001.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### .NET Core 1.0及1.1 架构" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ ".NET Core 1.0最初于2016年6月发布。与.NET Framework中可用的版本相比,此第一个版本的API接口要小得多,主要用于构建ASP.NET Core Web应用程序。由于.NET Core 1.0是HttpClient,因此提供了API。但是,不包括用于HttpWebRequest和ServicePoint的API。.NET Core 1.0中的HttpClient直接建立在使用非托管代码的OS平台API之上,Windows API使用WinHTTP,Linux和Mac使用LibCurl。\n", "\n", "值得注意的是:到2016年8月,很快就注意到,重新使用HttpClient实例以防止套接字耗尽的建议有一个相当麻烦的副作用:DNS\n", "\n", - "![.NetFramework](./Assets/架构.002.png)\n", - "\n", - "### .NET Core 2.0 架构\n", + "![.NetFramework](./Assets/架构.002.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### .NET Core 2.0 架构" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "在.NET Core 2.0中,添加了HttpWebRequest以支持.NET Standard 2.0。它位于HttpClient实现的顶层,这与.NET Framework 4.5+中的工作原理相反。还添加了ServicePoint,尽管它的许多API接口要么要么会抛出未实现的异常,要么根本就没有实现。\n", "\n", - "![.NetFramework](./Assets/架构.003.png)\n", - "\n", - "### .NET CORE 2.1及后续 架构\n", + "![.NetFramework](./Assets/架构.003.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### .NET CORE 2.1及后续 架构" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "这种有问题的行为导致团队不同团队进行了两项工作。\n", "\n", "ASP.NET团队开始研究**Microsoft.Extensions.Http包,该包的主要功能是IHttpClientFactory**。这个针对HttpClient实例自用的工厂还包括基础HttpMessageHandler链的生命周期管理。如果您想了解有关此功能的更多信息,可以查看我的系列博客文章,我将在此介绍。\n", @@ -117,8 +161,13 @@ "\n", "在同一时间范围内,.NET团队正在研究自己的解决方案。该团队也在.NET Core 2.1中发布,在HttpClient的处理程序链的核心引入了一个新的**SocketsHttpHandler**。该处理程序直接建立在Socket API之上,并在托管代码中实现HTTP。这项工作的一部分包括连接池系统以及为这些连接设置最大生存期的能力。\n", "\n", - "![.NetFramework](./Assets/架构.004.png)\n", - "\n", + "![.NetFramework](./Assets/架构.004.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "说明:虽然默认情况下从.NET Core 2.1启用了SocketsHttpHandler,但实现仅限于HTTP / 1.1通信。那些需要HTTP / 2的用户必须禁用该功能并使用较旧的处理程序链,该处理程序链像以前一样依赖非托管代码,并且不包括连接池。\n", "\n", "幸运的是,.NET Core 3.0中已消除了此限制,并且现在提供了HTTP/2支持。这应该使用基于适合所有对象的SocketsHttpHandler链的HttpClient。\n", diff --git a/Docs/1.4.3.高级使用.重复使用.ipynb b/Docs/1.4.1.高级使用.概述.ipynb similarity index 69% rename from Docs/1.4.3.高级使用.重复使用.ipynb rename to Docs/1.4.1.高级使用.概述.ipynb index 7656438..8b0a685 100644 --- a/Docs/1.4.3.高级使用.重复使用.ipynb +++ b/Docs/1.4.1.高级使用.概述.ipynb @@ -11,7 +11,15 @@ } }, "source": [ - "# HttpClient 使用原则" + "HttpClient高级特性-概述\n", + "======================" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 常见问题" ] }, { @@ -28,7 +36,21 @@ } }, "source": [ - "## 1、复用" + "## 使用原则" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 初始化" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 连接池" ] } ], diff --git a/Docs/1.4.2.高级使用.使用管道.ipynb b/Docs/1.4.2.高级使用.使用管道.ipynb new file mode 100644 index 0000000..b5e305e --- /dev/null +++ b/Docs/1.4.2.高级使用.使用管道.ipynb @@ -0,0 +1,710 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "source": [ + "# HttpClient 管道黑科技,让你的请求效率飞起来!🚀" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pipeline(管道)是HttpClient网络请求的`隐形加速器`。\n", + "\n", + "HttpClient 采用了与 ASP.NET Core 管道机制相同的设计,通过组合 `HttpMessageHandler` 和 `中间件模式` 形成请求/响应链来实现。允许你在请求和响应之间插入多个处理步骤,这些步骤可以按顺序执行,类似于管道。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- 提高性能\n", + " + 异步流水线式处理:利用async/await串联管道,实现非阻塞的请求-响应流水线,提升吞吐量;\n", + " + 资源高效使用:结合IHttpClientFactory自动管理连接池,高效使用HttpClient实例;\n", + "\n", + "- 优化程序设计\n", + " + 职责分离:将请求处理拆分为多个独立管道(如认证、日志、重试),每个管道专注单一功能;\n", + " + 可插拔性‌:通过增减管道,动态调整处理流程(如临时添加请求加密步骤),无需修改核心逻辑;\n", + " + 统一扩展点:为整个请求流程,形成统一的扩展点;结合AOP模式,更容易实现统一日志、权限、拦截、自定义流程等扩展功能。\n", + "\n", + "- 增加可维护\n", + " + 基于管道,形成模块化、可扩展化程序设计,提高可维护性;\n", + " + 调试友好:每个管道可单独测试、跟踪;" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 初始化" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "data": { + "text/markdown": [ + "## 初始化\n", + "这是全局共用文件,包括Nuget包引用、全局类库引用、全局文件引用、全局命名空间引用、全局变量、全局方法、全局类定义等功能。\n", + "\n", + "在业务笔记中引用,执行其它单元格之前先执行一次。" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Installed Packages
  • Microsoft.Extensions.DependencyInjection, 9.0.5
  • Microsoft.Extensions.Http, 9.0.5
  • Microsoft.Extensions.Http.Polly, 9.0.5
  • Microsoft.Extensions.Logging, 9.0.5
  • Microsoft.Extensions.Logging.Console, 9.0.5
  • Microsoft.Net.Http.Headers, 9.0.5
  • Polly, 8.5.2
  • Refit, 8.0.0
  • Refit.HttpClientFactory, 8.0.0
  • System.Net.Http.Json, 9.0.5
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "配置文件根目录:c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n", + "配置文件根目录:c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n", + "启动WebApi项目...\n", + "程序[c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.exe]已在新的命令行窗口执行。如果未出现新命令行窗口,可能是程序错误造成窗口闪现!\n", + "已启动WebApi项目,保持窗口打开状态!\n", + "初始化完成!\n" + ] + } + ], + "source": [ + "#!import \"./Ini.ipynb\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "source": [ + "## 1、创建自定义 HttpMessageHandler" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "/// \n", + "/// 日志管道(中间件)\n", + "/// \n", + "public class LoggingHandler : DelegatingHandler\n", + "{\n", + " public LoggingHandler()\n", + " {\n", + " //防止成为最后一个管道时异常\n", + " this.InnerHandler = new SocketsHttpHandler();\n", + " }\n", + " \n", + " protected override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken)\n", + " {\n", + " Console.WriteLine(\"日志管道: LoggingHandler -> Send -> Before\");\n", + "\n", + " HttpResponseMessage response = base.Send(request, cancellationToken);\n", + " response.EnsureSuccessStatusCode();\n", + "\n", + " Console.WriteLine(\"日志管道: LoggingHandler -> Send -> After\");\n", + "\n", + " return response;\n", + " }\n", + "\n", + " protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)\n", + " {\n", + " // 记录请求信息\n", + " Console.WriteLine($\"日志管道: LoggingHandler -> Send -> Before Request: {request.Method} {request.RequestUri}\");\n", + " // 调用管道中的下一个处理器,并获取响应\n", + " var response = await base.SendAsync(request, cancellationToken);\n", + " // 记录响应信息\n", + " Console.WriteLine($\"日志管道: LoggingHandler -> Send -> After Response: {response.StatusCode}\");\n", + " return response;\n", + " }\n", + "}\n", + "\n", + "/// \n", + "/// 令牌验证管道(中间件)\n", + "/// \n", + "public class TokenDelegatingHandler : DelegatingHandler \n", + "{\n", + " public TokenDelegatingHandler()\n", + " {\n", + " //防止成为最后一个管道时异常\n", + " this.InnerHandler = new SocketsHttpHandler();\n", + " }\n", + "\n", + " protected override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken)\n", + " {\n", + " Console.WriteLine(\"令牌验证管道: TokenDelegatingHandler -> Send -> Added Token\");\n", + "\n", + " if (!request.Headers.Contains(Microsoft.Net.Http.Headers.HeaderNames.Authorization)) \n", + " {\n", + " Console.WriteLine(\"没有 Token, TokenDelegatingHandler 添加之\");\n", + " request.Headers.Add(Microsoft.Net.Http.Headers.HeaderNames.Authorization, \"Bearer \" + \"a.b.c\");\n", + " }\n", + " else\n", + " {\n", + " Console.WriteLine($\"已有Token, {request.Headers.Authorization}\");\n", + " }\n", + "\n", + " HttpResponseMessage response = base.Send(request, cancellationToken);\n", + "\n", + " Console.WriteLine(\"令牌验证管道: TokenDelegatingHandler -> Send -> After\");\n", + "\n", + " return response;\n", + " }\n", + "\n", + " protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)\n", + " {\n", + " Console.WriteLine(\"令牌验证管道: TokenDelegatingHandler -> SendAsync -> Before\");\n", + "\n", + " HttpResponseMessage response = await base.SendAsync(request, cancellationToken);\n", + "\n", + " Console.WriteLine(\"令牌验证管道: TokenDelegatingHandler -> SendAsync -> After\");\n", + "\n", + " return response;\n", + " }\n", + "}\n", + "\n", + "///\n", + "/// 异常处理管道(中间件)\n", + "/// \n", + "public class ExceptionDelegatingHandler : DelegatingHandler\n", + "{\n", + " public ExceptionDelegatingHandler()\n", + " {\n", + " //防止成为最后一个管道时异常\n", + " this.InnerHandler = new SocketsHttpHandler();\n", + " }\n", + "\n", + " protected override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken)\n", + " {\n", + " Console.WriteLine(\"异常处理管道: ExceptionDelegatingHandler -> Send -> Before\");\n", + "\n", + " HttpResponseMessage response;\n", + " try \n", + " {\n", + " response = base.Send(request, cancellationToken);\n", + " response.EnsureSuccessStatusCode();\n", + " }\n", + " catch(Exception ex)\n", + " {\n", + " Console.WriteLine($\"异常管道中间件,监控到异常:{ex.Message}\");\n", + "\n", + " response = new HttpResponseMessage(HttpStatusCode.ExpectationFailed);\n", + " }\n", + " finally\n", + " {\n", + " //清理业务\n", + " }\n", + " \n", + " Console.WriteLine(\"异常处理管道: ExceptionDelegatingHandler -> Send -> After\");\n", + "\n", + " return response;\n", + " }\n", + "\n", + " protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)\n", + " {\n", + " Console.WriteLine(\"异常处理管道: ExceptionDelegatingHandler -> SendAsync -> Before\");\n", + "\n", + " HttpResponseMessage response;\n", + " try \n", + " {\n", + " response = response = await base.SendAsync(request, cancellationToken);\n", + " response.EnsureSuccessStatusCode();\n", + " }\n", + " catch(Exception ex)\n", + " {\n", + " Console.WriteLine($\"异常管道中间件,监控到异常:{ex.Message}\");\n", + "\n", + " response = new HttpResponseMessage(HttpStatusCode.ExpectationFailed);\n", + " }\n", + " finally\n", + " {\n", + " //清理业务\n", + " }\n", + "\n", + " Console.WriteLine(\"异常处理管道: ExceptionDelegatingHandler -> SendAsync -> After\");\n", + "\n", + " return response;\n", + " }\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2、组合多个 HttpMessageHandler 形成请求/响应管道(处理链)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "组合管道,就是利用 DelegatingHandler 类的 InnerHandler 属性,指定本管道的下一个管道(中间件),将多个管道链接起来,形成一个`请求/响应`处理链。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 默认管道" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "响应内容:Pong\r\n" + ] + } + ], + "source": [ + "{ //默认配置\n", + " var httpClient = new HttpClient()\n", + " {\n", + " BaseAddress = webApiBaseUri\n", + " };\n", + "\n", + " //发送请求,从日志看管道执行顺序\n", + " var response = await httpClient.GetAsync(\"/api/Hello/Ping\");\n", + "\n", + " var content = await response.Content.ReadAsStringAsync();\n", + "\n", + " Console.WriteLine($\"响应内容:{content}\");\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 手动组合" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "令牌验证管道: TokenDelegatingHandler -> SendAsync -> Before\n", + "异常处理管道: ExceptionDelegatingHandler -> SendAsync -> Before\n", + "日志管道: LoggingHandler -> Send -> Before Request: GET http://127.0.0.1:5189/api/Config/GetApiConfig\n", + "日志管道: LoggingHandler -> Send -> After Response: OK\n", + "异常处理管道: ExceptionDelegatingHandler -> SendAsync -> After\n", + "令牌验证管道: TokenDelegatingHandler -> SendAsync -> After\n", + "响应内容:{\"data\":{\"host\":\"localhost\",\"port\":5189,\"scheme\":\"http\",\"pathBase\":\"\",\"baseUrl\":\"http://localhost:5189\",\"webAppMutexName\":\"HttpClientStudy.WebApp\"},\"code\":1,\"message\":\"成功\"}\n" + ] + } + ], + "source": [ + "{ //组装管道\n", + "\n", + " /*\n", + " 1. 最后一个管道必须是SocketsHttpHandler 或者 保证最后的管道的InnerHandler有默认值\n", + " 2. 倒序组装,正序执行:HttpClient构造函数,传入的HttpMessageHandler是第一个执行的,其InnerHandler是下一个执行的,依次类推\n", + " */\n", + "\n", + " var lastHandler = new SocketsHttpHandler()\n", + " {\n", + " UseCookies = false,\n", + " UseProxy = false,\n", + " };\n", + "\n", + " var logPipeline = new LoggingHandler()\n", + " {\n", + " InnerHandler = lastHandler\n", + " };\n", + " \n", + " var exceptionHandler = new ExceptionDelegatingHandler()\n", + " {\n", + " InnerHandler = logPipeline\n", + " };\n", + "\n", + " var tokenHandler = new TokenDelegatingHandler()\n", + " {\n", + " InnerHandler = exceptionHandler\n", + " };\n", + "\n", + " var httpClient = new HttpClient(tokenHandler)\n", + " {\n", + " BaseAddress = webApiBaseUri\n", + " };\n", + "\n", + " //发送请求,从日志看管道执行顺序\n", + " var response = await httpClient.GetAsync(\"/api/Config/GetApiConfig\");\n", + "\n", + " var content = await response.Content.ReadAsStringAsync();\n", + "\n", + " Console.WriteLine($\"响应内容:{content}\");\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 动态组合" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "整个管道链的组装,是非常灵活的,动态组装也不是难事!" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "http://127.0.0.1:5189" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "令牌验证管道: TokenDelegatingHandler -> SendAsync -> Before\n", + "日志管道: LoggingHandler -> Send -> Before Request: GET http://127.0.0.1:5189/api/Config/GetApiConfig\n", + "异常处理管道: ExceptionDelegatingHandler -> SendAsync -> Before\n", + "异常处理管道: ExceptionDelegatingHandler -> SendAsync -> After\n", + "日志管道: LoggingHandler -> Send -> After Response: OK\n", + "令牌验证管道: TokenDelegatingHandler -> SendAsync -> After\n", + "响应内容:{\"data\":{\"host\":\"localhost\",\"port\":5189,\"scheme\":\"http\",\"pathBase\":\"\",\"baseUrl\":\"http://localhost:5189\",\"webAppMutexName\":\"HttpClientStudy.WebApp\"},\"code\":1,\"message\":\"成功\"}\n" + ] + } + ], + "source": [ + "/// \n", + "/// 管道构建器\n", + "/// \n", + "public class HttpMessageHandlerBuilder\n", + "{\n", + " public List Handlers { get; set; }\n", + "\n", + " public HttpMessageHandlerBuilder()\n", + " {\n", + " this.Handlers = new List();\n", + " }\n", + "\n", + " public HttpMessageHandlerBuilder(List handlers):base()\n", + " {\n", + " if(handlers != null)\n", + " {\n", + " this.Handlers = handlers;\n", + " }\n", + " }\n", + "\n", + " public void AddHttpMessageHandler(DelegatingHandler handler)\n", + " {\n", + " Handlers.Add(handler);\n", + " }\n", + "\n", + " public void RemoveHttpMessageHandler(DelegatingHandler handler)\n", + " {\n", + " Handlers.Remove(handler);\n", + " }\n", + "\n", + " public List FindHttpMessageHandler(DelegatingHandler handler)\n", + " {\n", + " return Handlers.Where(h => h.GetType() == handler.GetType()).ToList();\n", + " }\n", + "\n", + " /// \n", + " /// 根据管道配置:创建一个新HttpClient实例\n", + " /// \n", + " public HttpClient Build()\n", + " {\n", + " if(this.Handlers ==null || this.Handlers.Count == 0)\n", + " {\n", + " return new HttpClient();\n", + " }\n", + "\n", + " //默认最终处理器\n", + " HttpMessageHandler defaultLastHandler = new SocketsHttpHandler()\n", + " {\n", + " //自定义配置\n", + " PooledConnectionLifetime = TimeSpan.FromSeconds(120),\n", + " };\n", + "\n", + " //倒序组装:完成后执行顺序与注册顺序一致\n", + " //拷贝份,省得多次调用有问题\n", + "\n", + " HttpMessageHandler currentHandler = new SocketsHttpHandler()\n", + " {\n", + " //自定义配置\n", + " PooledConnectionLifetime = TimeSpan.FromSeconds(120),\n", + " };\n", + "\n", + " var builderHandlers = this.Handlers.ToList();\n", + " builderHandlers.Reverse();\n", + "\n", + " if(builderHandlers[0].InnerHandler != null)\n", + " {\n", + " currentHandler = builderHandlers[0].InnerHandler;\n", + " }\n", + "\n", + " for (int i = 0; i < builderHandlers.Count; i++)\n", + " {\n", + " builderHandlers[i].InnerHandler = currentHandler;\n", + " currentHandler = builderHandlers[i];\n", + " }\n", + "\n", + " // 利用管道创建HttpClient\n", + " var httpClient = new HttpClient(currentHandler);\n", + "\n", + " return httpClient;\n", + " }\n", + "}\n", + "\n", + "//构建管道\n", + "List handlers = new List()\n", + "{\n", + " new TokenDelegatingHandler(),\n", + "};\n", + "\n", + "//添加\n", + "handlers.Add(new LoggingHandler());\n", + "handlers.Add(new ExceptionDelegatingHandler());\n", + "\n", + "var handlerBuilder = new HttpMessageHandlerBuilder(handlers);\n", + "\n", + "//第一次:发送请求,从日志看管道执行顺序\n", + "var httpClient = handlerBuilder.Build();\n", + "httpClient.BaseAddress = webApiBaseUri;\n", + "webApiBaseUrl.Display();\n", + "var response = await httpClient.GetAsync(\"/api/Config/GetApiConfig\");\n", + "var content = await response.Content.ReadAsStringAsync();\n", + "\n", + "Console.WriteLine($\"响应内容:{content}\");\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3、发送请求" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "和一般的请求,没什么区别。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4、管道执行顺序" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 请求从最外层的 DelegatingHandler 开始,逐层进入内部处理器。\n", + "+ 响应则从最内层返回,经过每一层的 SendAsync 方法后返回给调用者。\n", + "\n", + "执行下面示例,查看日志输出:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "令牌验证管道: TokenDelegatingHandler -> SendAsync -> Before\n", + "异常处理管道: ExceptionDelegatingHandler -> SendAsync -> Before\n", + "日志管道: LoggingHandler -> Send -> Before Request: GET http://127.0.0.1:5189/api/Hello/Ping\n", + "日志管道: LoggingHandler -> Send -> After Response: OK\n", + "异常处理管道: ExceptionDelegatingHandler -> SendAsync -> After\n", + "令牌验证管道: TokenDelegatingHandler -> SendAsync -> After\n", + "响应内容:Pong\n" + ] + } + ], + "source": [ + "{ \n", + " //组装管道\n", + " //最后一个管道,必须是SocketsHttpHandler,或者默认的是SocketsHttpHandler\n", + " var lastHandler = new SocketsHttpHandler()\n", + " {\n", + " UseCookies = false,\n", + " UseProxy = false,\n", + " };\n", + "\n", + " var logPipeline = new LoggingHandler()\n", + " {\n", + " InnerHandler = lastHandler\n", + " };\n", + " \n", + " var exceptionHandler = new ExceptionDelegatingHandler()\n", + " {\n", + " InnerHandler = logPipeline\n", + " };\n", + "\n", + " var tokenHandler = new TokenDelegatingHandler()\n", + " {\n", + " InnerHandler = exceptionHandler\n", + " };\n", + "\n", + " var httpClient = new HttpClient(tokenHandler)\n", + " {\n", + " BaseAddress = webApiBaseUri\n", + " };\n", + "\n", + " //发送请求,从日志看管道执行顺序\n", + " var response = await httpClient.GetAsync(\"/api/Hello/Ping\");\n", + "\n", + " var content = await response.Content.ReadAsStringAsync();\n", + "\n", + " Console.WriteLine($\"响应内容:{content}\");\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5、使用 IHttpClientFactory 构建更复杂的管道(推荐)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 小结" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "| 特性 | 描述 |\n", + "|---------------------|----------------------------------------------------------------------|\n", + "| HttpMessageHandler | 是 HttpClient 的核心处理单元:ml-citation{ref=\"1\" data=\"citationList\"} |\n", + "| DelegatingHandler | 可用于构建自定义中间件逻辑:ml-citation{ref=\"1,5\" data=\"citationList\"} |\n", + "| 管道顺序 | 请求按顺序进入,响应逆序返回:ml-citation{ref=\"5,8\" data=\"citationList\"} |\n", + "| IHttpClientFactory | 推荐用于生产环境,支持灵活配置:ml-citation{ref=\"1,7\" data=\"citationList\"} |\n", + "\n", + "通过添加更多 DelegatingHandler 实现缓存、重试、认证等!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".NET (C#)", + "language": "C#", + "name": ".net-csharp" + }, + "language_info": { + "name": "python" + }, + "polyglot_notebook": { + "kernelInfo": { + "defaultKernelName": "csharp", + "items": [ + { + "aliases": [], + "name": "csharp" + } + ] + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Docs/1.4.0.高级使用.概述.ipynb b/Docs/1.4.3.高级使用.类型化客户端.ipynb similarity index 100% rename from Docs/1.4.0.高级使用.概述.ipynb rename to Docs/1.4.3.高级使用.类型化客户端.ipynb diff --git a/Docs/1.4.4.高级使用.使用管道.ipynb b/Docs/1.4.4.高级使用.使用管道.ipynb deleted file mode 100644 index 7656438..0000000 --- a/Docs/1.4.4.高级使用.使用管道.ipynb +++ /dev/null @@ -1,58 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "dotnet_interactive": { - "language": "csharp" - }, - "polyglot_notebook": { - "kernelName": "csharp" - } - }, - "source": [ - "# HttpClient 使用原则" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "dotnet_interactive": { - "language": "csharp" - }, - "polyglot_notebook": { - "kernelName": "csharp" - }, - "vscode": { - "languageId": "polyglot-notebook" - } - }, - "source": [ - "## 1、复用" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".NET (C#)", - "language": "C#", - "name": ".net-csharp" - }, - "language_info": { - "name": "python" - }, - "polyglot_notebook": { - "kernelInfo": { - "defaultKernelName": "csharp", - "items": [ - { - "aliases": [], - "name": "csharp" - } - ] - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/Docs/1.4.1.高级使用.初始化.ipynb b/Docs/1.4.4.高级使用.工厂模式.ipynb similarity index 100% rename from Docs/1.4.1.高级使用.初始化.ipynb rename to Docs/1.4.4.高级使用.工厂模式.ipynb diff --git a/Docs/1.4.2.高级使用.连接池.ipynb b/Docs/1.4.5.高级使用.Polly.ipynb similarity index 100% rename from Docs/1.4.2.高级使用.连接池.ipynb rename to Docs/1.4.5.高级使用.Polly.ipynb diff --git a/Docs/1.4.5.高级使用.类型化客户端.ipynb b/Docs/1.4.5.高级使用.类型化客户端.ipynb deleted file mode 100644 index 7656438..0000000 --- a/Docs/1.4.5.高级使用.类型化客户端.ipynb +++ /dev/null @@ -1,58 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "dotnet_interactive": { - "language": "csharp" - }, - "polyglot_notebook": { - "kernelName": "csharp" - } - }, - "source": [ - "# HttpClient 使用原则" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "dotnet_interactive": { - "language": "csharp" - }, - "polyglot_notebook": { - "kernelName": "csharp" - }, - "vscode": { - "languageId": "polyglot-notebook" - } - }, - "source": [ - "## 1、复用" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".NET (C#)", - "language": "C#", - "name": ".net-csharp" - }, - "language_info": { - "name": "python" - }, - "polyglot_notebook": { - "kernelInfo": { - "defaultKernelName": "csharp", - "items": [ - { - "aliases": [], - "name": "csharp" - } - ] - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/Docs/1.4.6.高级使用.工厂模式.ipynb b/Docs/1.4.6.高级使用.工厂模式.ipynb deleted file mode 100644 index 7656438..0000000 --- a/Docs/1.4.6.高级使用.工厂模式.ipynb +++ /dev/null @@ -1,58 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "dotnet_interactive": { - "language": "csharp" - }, - "polyglot_notebook": { - "kernelName": "csharp" - } - }, - "source": [ - "# HttpClient 使用原则" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "dotnet_interactive": { - "language": "csharp" - }, - "polyglot_notebook": { - "kernelName": "csharp" - }, - "vscode": { - "languageId": "polyglot-notebook" - } - }, - "source": [ - "## 1、复用" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".NET (C#)", - "language": "C#", - "name": ".net-csharp" - }, - "language_info": { - "name": "python" - }, - "polyglot_notebook": { - "kernelInfo": { - "defaultKernelName": "csharp", - "items": [ - { - "aliases": [], - "name": "csharp" - } - ] - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/Docs/1.4.7.高级使用.Polly.ipynb b/Docs/1.4.7.高级使用.Polly.ipynb deleted file mode 100644 index 7656438..0000000 --- a/Docs/1.4.7.高级使用.Polly.ipynb +++ /dev/null @@ -1,58 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "dotnet_interactive": { - "language": "csharp" - }, - "polyglot_notebook": { - "kernelName": "csharp" - } - }, - "source": [ - "# HttpClient 使用原则" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "dotnet_interactive": { - "language": "csharp" - }, - "polyglot_notebook": { - "kernelName": "csharp" - }, - "vscode": { - "languageId": "polyglot-notebook" - } - }, - "source": [ - "## 1、复用" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".NET (C#)", - "language": "C#", - "name": ".net-csharp" - }, - "language_info": { - "name": "python" - }, - "polyglot_notebook": { - "kernelInfo": { - "defaultKernelName": "csharp", - "items": [ - { - "aliases": [], - "name": "csharp" - } - ] - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/Docs/Assets/1.jpg b/Docs/Assets/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9504eb31a69739ad5fc6a4ed50f39bd2ba93b111 GIT binary patch literal 37987 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 literal 0 HcmV?d00001 diff --git a/Docs/Assets/HttpClient-使用管道.jpg b/Docs/Assets/HttpClient-使用管道.jpg new file mode 100644 index 0000000000000000000000000000000000000000..feb34e5d38c53b71970570790ac66cf006088734 GIT binary patch literal 267586 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%0AWCDrn|2+HgNK;kq~ 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

?mR?yS%m6GABnOTMy^knym}o*J4f09xW0 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℞i`4*w9AUDyiz`Drsz=U>aT&h-@=J5X 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%0Ak)?5fACyky|xsF=Wrn-Z6H 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 + /// 管道构建器 + /// + public class HttpMessageHandlerBuilder + { + public List Handlers { get; set; } + + public HttpMessageHandlerBuilder() + { + this.Handlers = new List(); + } + + public HttpMessageHandlerBuilder(List handlers) : base() + { + if (handlers != null) + { + this.Handlers = handlers; + } + } + + public void AddHttpMessageHandler(DelegatingHandler handler) + { + Handlers.Add(handler); + } + + public void RemoveHttpMessageHandler(DelegatingHandler handler) + { + Handlers.Remove(handler); + } + + public List FindHttpMessageHandler(DelegatingHandler handler) + { + return Handlers.Where(h => h.GetType() == handler.GetType()).ToList(); + } + + ///

+ /// 根据管道配置:创建一个新HttpClient实例 + /// + public HttpClient Build() + { + if (this.Handlers == null || this.Handlers.Count == 0) + { + return new HttpClient(); + } + + //默认最终处理器 + HttpMessageHandler defaultLastHandler = new SocketsHttpHandler() + { + //自定义配置 + PooledConnectionLifetime = TimeSpan.FromSeconds(120), + }; + + //倒序组装:完成后执行顺序与注册顺序一致 + //拷贝份,省得多次调用有问题 + + HttpMessageHandler currentHandler = new SocketsHttpHandler() + { + //自定义配置 + PooledConnectionLifetime = TimeSpan.FromSeconds(120), + }; + + var builderHandlers = this.Handlers.ToList(); + builderHandlers.Reverse(); + + if (builderHandlers[0].InnerHandler != null) + { + currentHandler = builderHandlers[0].InnerHandler; + } + + for (int i = 0; i < builderHandlers.Count; i++) + { + builderHandlers[i].InnerHandler = currentHandler; + currentHandler = builderHandlers[i]; + } + + // 利用管道创建HttpClient + var httpClient = new HttpClient(currentHandler); + + return httpClient; + } + } +} diff --git a/HttpClientStudy.UnitTest/HttpClients/PipelineClientTest.cs b/HttpClientStudy.UnitTest/HttpClients/PipelineClientTest.cs index ef40fc3..e7d8cdd 100644 --- a/HttpClientStudy.UnitTest/HttpClients/PipelineClientTest.cs +++ b/HttpClientStudy.UnitTest/HttpClients/PipelineClientTest.cs @@ -48,5 +48,33 @@ namespace HttpClientStudy.UnitTest.HttpClients var r = await client.GetAsync(WebApiConfigManager.GetWebApiConfig().BaseUrl + "/api/health"); r.EnsureSuccessStatusCode(); } + + [Fact] + public async Task BuilderHttpClient_Test() + { + //构建管道 + List handlers = new List() + { + new TokenDelegatingHandler(), + }; + + //添加 + handlers.Add(new LoggingHandler()); + handlers.Add(new ExceptionDelegatingHandler()); + + var handlerBuilder = new HttpMessageHandlerBuilder(handlers); + + //第一次:发送请求,从日志看管道执行顺序 + var httpClient = handlerBuilder.Build(); + httpClient.BaseAddress = webApiBaseUri; + var response = await httpClient.GetAsync("/api/Config/GetApiConfig"); + var content = await response.Content.ReadAsStringAsync(); + + Console.WriteLine($"响应内容:{content}"); + + // 改变管科 + handlers.Remove(new ExceptionDelegatingHandler()); + var httpClient2 = handlerBuilder.Build(); + } } }