{
"cells": [
"cell_type": "markdown",
"metadata": {
"dotnet_interactive": {
"language": "csharp"
},
"polyglot_notebook": {
"kernelName": "csharp"
}
"source": [
"# HttpClient 初始化与生命周期管理"
]
"metadata": {},
"HttpClient 旨在实例化一次,并在应用程序的整个生命周期内重复使用。\n",
"\n",
"为实现复用,HttpClient类库默认使用连接池和请求管道,可以再结合IoC容器、工厂模式(提供了IHttpClientFactory类库)、复原库Polly"
"vscode": {
"languageId": "polyglot-notebook"
"## 1、手动管理:直接实例化-强烈不推荐"
"## 2、手动管理:静态类或单例"
"## 3、手动管理:多工具类(每类请求对应一种工具类或单例类)"
"## 4、手动管理 + 可复原(Polly)"
"## 5、IoC容器管理:类型化的客户端"
"## 6、客户端工厂管理:IHttpClientFactory(需要结合IoC)"
"## 7、综合管理:工厂 + 类型化客户端 + 请求管道 + Polly(默认使用 连接池和IoC容器)"
],
"kernelspec": {
"display_name": ".NET (C#)",
"language": "C#",
"name": ".net-csharp"
"language_info": {
"name": "python"
"kernelInfo": {
"defaultKernelName": "csharp",
"items": [
"aliases": [],
"name": "csharp"
"nbformat": 4,
"nbformat_minor": 2