{ "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、初始化及全局设置" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [], "source": [ "//初始化,只执行一次\n", "\n", "// 引用nuget包和类库文件\n", "//#r \"nuget:Microsoft.Net.Http.Headers,8.0.12\"\n", "//#r \"nuget:Microsoft.Extensions.Http,8.0.1\"\n", "//#r \"nuget:System.Net.Http.Json,8.0.1\"\n", "#r \"./Publish/HttpClientStudy.Model/HttpClientStudy.Model.dll\"\n", "//已引用相关类库\n", "#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n", "\n", "//全局引用\n", "global using System;\n", "global using System.Collections;\n", "global using System.Linq;\n", "global using System.Linq.Expressions;\n", "global using System.Threading;\n", "global using System.Threading.Tasks;\n", "global using System.Net.Http;\n", "global using System.Net.Mime;\n", "global using System.Net.Http.Json;\n", "\n", "global using HttpClientStudy.Config;\n", "global using HttpClientStudy.Model;\n", "global using HttpClientStudy.Core;\n", "global using HttpClientStudy.Core.Utilities;\n", "\n", "//全局变量\n", "var webApiBaseUrl = WebApiConfigManager.GetWebApiConfig().BaseUrl;\n", "var workDir = Environment.CurrentDirectory;\n", "var fullPath = System.IO.Path.GetFullPath(\"./Publish/HttpClientStudy.WebApp/HttpClientStudy.WebApp.exe\", workDir);\n", "\n", "//全局共享静态 HttpClient 对象\n", "public static HttpClient SharedClient = new HttpClient(new SocketsHttpHandler(){ PooledConnectionIdleTimeout = TimeSpan.FromSeconds(30)})\n", "{\n", " BaseAddress = new Uri(WebApiConfigManager.GetWebApiConfig().BaseUrl),\n", "};\n", "\n", "//启动已发布的WebApi项目\n", "{\n", " Console.WriteLine(\"启动WebApi项目\");\n", " var startMessage = AppUtility.RunWebApiExeFile(fullPath);\n", " Console.WriteLine(startMessage);\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2、处理响应状态" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3、处理异常响应" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4、处理响应数据" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.1 接收响应头数据" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.2 接收响应体数据" ] } ], "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 }