From 74d783effd9d338b83cf871e5f3e806144ff49dd Mon Sep 17 00:00:00 2001 From: bicijinlian Date: Tue, 13 May 2025 13:02:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E9=94=99=E8=AF=AF=E4=B8=8E?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docs/0.目录结构.ipynb | 6 +- Docs/1.0.项目管理.ipynb | 6 +- Docs/1.3.0.基础使用.管理客户端.ipynb | 14 +- ...nb => 1.3.4.基础使用.使用Json.ipynb} | 0 Docs/1.3.4.基础使用.处理错误.ipynb | 205 ---- Docs/1.3.5.基础使用.处理错误.ipynb | 1021 +++++++++++++++++ ... => 1.3.6.基础使用.使用代理.ipynb} | 0 Docs/Assets/HttpClient-异常处理.jpg | Bin 0 -> 180157 bytes Docs/Ini.ipynb | 11 +- 9 files changed, 1042 insertions(+), 221 deletions(-) rename Docs/{1.3.5.基础使用.使用代理.ipynb => 1.3.4.基础使用.使用Json.ipynb} (100%) delete mode 100644 Docs/1.3.4.基础使用.处理错误.ipynb create mode 100644 Docs/1.3.5.基础使用.处理错误.ipynb rename Docs/{1.3.6.基础使用.使用Json.ipynb => 1.3.6.基础使用.使用代理.ipynb} (100%) create mode 100644 Docs/Assets/HttpClient-异常处理.jpg diff --git a/Docs/0.目录结构.ipynb b/Docs/0.目录结构.ipynb index d9894da..e71881a 100644 --- a/Docs/0.目录结构.ipynb +++ b/Docs/0.目录结构.ipynb @@ -65,9 +65,9 @@ "+ [发送请求](./1.3.1.基础使用.发送请求.ipynb)\n", "+ [使用请求数据](./1.3.2.基础使用.使用请求数据.ipynb)\n", "+ [处理响应](./1.3.3.基础使用.处理响应.ipynb)\n", - "+ [处理错误](./1.3.4.基础使用.处理错误.ipynb)\n", - "+ [使用代理](./1.3.5.基础使用.使用代理.ipynb)\n", - "+ [使用Json](./1.3.6.基础使用.使用Json.ipynb)\n", + "+ [使用Json](./1.3.4.基础使用.使用Json.ipynb)\n", + "+ [处理错误](./1.3.5.基础使用.处理错误.ipynb)\n", + "+ [使用代理](./1.3.6.基础使用.使用代理.ipynb)\n", "+ [使用Cookie](./1.3.7.基础使用.使用Cookie.ipynb)" ] }, diff --git a/Docs/1.0.项目管理.ipynb b/Docs/1.0.项目管理.ipynb index 5d954ab..536dcd6 100644 --- a/Docs/1.0.项目管理.ipynb +++ b/Docs/1.0.项目管理.ipynb @@ -252,7 +252,11 @@ "cell_type": "code", "execution_count": null, "id": "7e6f752c", - "metadata": {}, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, "outputs": [ { "name": "stdout", diff --git a/Docs/1.3.0.基础使用.管理客户端.ipynb b/Docs/1.3.0.基础使用.管理客户端.ipynb index 1ea8e7d..bd6c95a 100644 --- a/Docs/1.3.0.基础使用.管理客户端.ipynb +++ b/Docs/1.3.0.基础使用.管理客户端.ipynb @@ -1319,7 +1319,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" @@ -1403,7 +1403,7 @@ "\n", "// 方式1(不推荐):类型化客户端:直接注入IoC,并从中获取实例。优点是范围可以自己选择。\n", "{\n", - " Console.WriteLine(\"方式1 -------------------------------------------------------------------\");\n", + " Console.WriteLine(\"方式1 直接注入IoC ------------------------------------------------------\");\n", " var services = new ServiceCollection();\n", " services.AddSingleton(b => \n", " { \n", @@ -1424,12 +1424,12 @@ " var dataB = await serverB.PingAsync();\n", " Console.WriteLine(dataB);\n", "\n", - " Console.WriteLine(\"========================================================================\");\n", + " Console.WriteLine(\"==============================结束======================================\");\n", "}\n", "\n", "// 方式2:类型化客户端:AddHttpClient<>() 设置\n", "{\n", - " Console.WriteLine(\"方式2 -------------------------------------------------------------------\");\n", + " Console.WriteLine(\"方式2 AddHttpClient<>() 设置---------------------------------------------\");\n", " var services = new ServiceCollection();\n", " services\n", " .AddHttpClient()\n", @@ -1455,12 +1455,12 @@ " var dataB = await serverB.PingAsync();\n", " Console.WriteLine(dataB);\n", "\n", - " Console.WriteLine(\"========================================================================\");\n", + " Console.WriteLine(\"==============================结束======================================\");\n", "}\n", "\n", "// 方式3:类型化客户端:结合工厂,由工厂从统一配置中提供类型化客户端中使用的HttpClient实例。\n", "{\n", - " Console.WriteLine(\"方式3 -------------------------------------------------------------------\");\n", + " Console.WriteLine(\"方式3 结合工厂-----------------------------------------------------------\");\n", " var services = new ServiceCollection();\n", " services.AddHttpClient(client => \n", " {\n", @@ -1502,7 +1502,7 @@ " var dataB2 = await serviceB2.PingAsync();\n", " Console.WriteLine(dataB2);\n", "\n", - " Console.WriteLine(\"========================================================================\");\n", + " Console.WriteLine(\"==============================结束======================================\");\n", "}" ] }, diff --git a/Docs/1.3.5.基础使用.使用代理.ipynb b/Docs/1.3.4.基础使用.使用Json.ipynb similarity index 100% rename from Docs/1.3.5.基础使用.使用代理.ipynb rename to Docs/1.3.4.基础使用.使用Json.ipynb diff --git a/Docs/1.3.4.基础使用.处理错误.ipynb b/Docs/1.3.4.基础使用.处理错误.ipynb deleted file mode 100644 index e77ccbe..0000000 --- a/Docs/1.3.4.基础使用.处理错误.ipynb +++ /dev/null @@ -1,205 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "dotnet_interactive": { - "language": "csharp" - }, - "polyglot_notebook": { - "kernelName": "csharp" - } - }, - "source": [ - "# HttpClient 处理错误与异常" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "根据客户端的创建方法不周,有不同的错误与异常处理方式。推荐类型化客户端、工厂和Polly库中统一处理!" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "dotnet_interactive": { - "language": "csharp" - }, - "polyglot_notebook": { - "kernelName": "csharp" - }, - "vscode": { - "languageId": "polyglot-notebook" - } - }, - "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.4
  • Microsoft.Extensions.Http, 9.0.4
  • Microsoft.Extensions.Http.Polly, 9.0.4
  • Microsoft.Extensions.Logging, 9.0.4
  • Microsoft.Extensions.Logging.Console, 9.0.4
  • Microsoft.Net.Http.Headers, 9.0.4
  • Polly, 8.5.2
  • Refit, 8.0.0
  • Refit.HttpClientFactory, 8.0.0
  • System.Net.Http.Json, 9.0.4
" - ] - }, - "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": {}, - "source": [ - "## 常规方法 try catch" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "直接实例化客户端时,可以用`Try Catch`简单处理,这种是最不推荐的方式!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "polyglot_notebook": { - "kernelName": "csharp" - }, - "vscode": { - "languageId": "polyglot-notebook" - } - }, - "outputs": [], - "source": [ - "/*\n", - " 每次请求都实例化:并发量大、请求频繁进会耗尽套接字端口\n", - "*/\n", - "{ \n", - " var baseUrl = WebApiConfigManager.GetWebApiConfig().BaseUrl;\n", - "\n", - " using(var client = new HttpClient())\n", - " {\n", - " //发送请求\n", - " var response = await client.GetAsync(baseUrl);\n", - " response.EnsureSuccessStatusCode();\n", - " }\n", - "\n", - " //显示句柄\n", - " var displayValue = display($\"第 0 次请求,成功!\");\n", - "\n", - " for(int i=0;i<10;i++)\n", - " {\n", - " using(var client = new HttpClient())\n", - " {\n", - " var response = await client.GetAsync(baseUrl);\n", - " response.EnsureSuccessStatusCode();\n", - " displayValue.Update($\"第 {i+1} 次/ 共 10 次请求,成功!\");\n", - " }\n", - " }\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 静态或工具类中处理" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 类型化客户端中处理" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 在管道中,添加异常中间件" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 工厂模式中统一处理" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Polly库处理" - ] - } - ], - "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.3.5.基础使用.处理错误.ipynb b/Docs/1.3.5.基础使用.处理错误.ipynb new file mode 100644 index 0000000..c711e91 --- /dev/null +++ b/Docs/1.3.5.基础使用.处理错误.ipynb @@ -0,0 +1,1021 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "source": [ + "# HttpClient 处理错误与异常" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "根据客户端的创建方法不周,有不同的错误与异常处理方式。推荐类型化客户端、工厂和Polly库中统一处理!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "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.4
  • Microsoft.Extensions.Http, 9.0.4
  • Microsoft.Extensions.Http.Polly, 9.0.4
  • Microsoft.Extensions.Logging, 9.0.4
  • Microsoft.Extensions.Logging.Console, 9.0.4
  • Microsoft.Net.Http.Headers, 9.0.4
  • Polly, 8.5.2
  • Refit, 8.0.0
  • Refit.HttpClientFactory, 8.0.0
  • System.Net.Http.Json, 9.0.4
" + ] + }, + "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": {}, + "source": [ + "## 常规方法" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "直接实例化客户端时,可以用`Try Catch`或者`EnsureSuccessStatusCode方法`简单处理, 这种是最不推荐的方式!\n", + "\n", + "推荐使用后面介绍的 Pipeline 管道方式" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ try catch" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "远程请求失败,响应码 InternalServerError\r\n" + ] + } + ], + "source": [ + "/*\n", + " try catch 处理异常\n", + "*/\n", + "try\n", + "{\n", + " var requestUri = new Uri(webApiBaseUri, \"/api/ErrorDemo/Error500\");\n", + "\n", + " using(var client = new HttpClient())\n", + " {\n", + " //发送请求\n", + " var response = await client.GetAsync(requestUri);\n", + " if(response.IsSuccessStatusCode)\n", + " {\n", + " Console.WriteLine($\"远程请求成功,响应码 {response.StatusCode}\");\n", + " }\n", + " else\n", + " {\n", + " Console.WriteLine($\"远程请求失败,响应码 {response.StatusCode}\");\n", + " }\n", + " }\n", + "}\n", + "catch(Exception ex)\n", + "{\n", + " Console.WriteLine($\"远程调用异常:{ex.Message}\");\n", + "}\n", + "finally\n", + "{\n", + " //清理业务\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ Response的EnsureSuccessStatusCode方法" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "ename": "Error", + "evalue": "System.Net.Http.HttpRequestException: Response status code does not indicate success: 500 (Internal Server Error).\r\n at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()\r\n at Submission#3.<>d__0.MoveNext()\r\n--- End of stack trace from previous location ---\r\n at Microsoft.CodeAnalysis.Scripting.ScriptExecutionState.RunSubmissionsAsync[TResult](ImmutableArray`1 precedingExecutors, Func`2 currentExecutor, StrongBox`1 exceptionHolderOpt, Func`2 catchExceptionOpt, CancellationToken cancellationToken)", + "output_type": "error", + "traceback": [ + "System.Net.Http.HttpRequestException: Response status code does not indicate success: 500 (Internal Server Error).\r\n", + " at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()\r\n", + " at Submission#3.<>d__0.MoveNext()\r\n", + "--- End of stack trace from previous location ---\r\n", + " at Microsoft.CodeAnalysis.Scripting.ScriptExecutionState.RunSubmissionsAsync[TResult](ImmutableArray`1 precedingExecutors, Func`2 currentExecutor, StrongBox`1 exceptionHolderOpt, Func`2 catchExceptionOpt, CancellationToken cancellationToken)" + ] + } + ], + "source": [ + "{ //EnsureSuccessStatusCode方法\n", + "\n", + " var requestUri = new Uri(webApiBaseUri, \"/api/ErrorDemo/Error500\");\n", + "\n", + " using(var client = new HttpClient())\n", + " {\n", + " //发送请求\n", + " var response = await client.GetAsync(requestUri);\n", + "\n", + " //确保响应码正确,否则异常\n", + " response.EnsureSuccessStatusCode();\n", + "\n", + " //输出响应码\n", + " Console.WriteLine($\"远程请求成功,响应码 {response.StatusCode}\");\n", + " }\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 静态或工具类中处理" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "静态类或工具类,可以在内部方法里使用 Try Catch 等常规方法进行异常处理。\n", + "\n", + "注意:推荐使用后面介绍的 Pipeline 管道方式" + ] + }, + { + "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": [ + "配置文件根目录:c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n", + "正常请求结果:{\"data\":{\"host\":\"localhost\",\"port\":5189,\"scheme\":\"http\",\"pathBase\":\"\",\"baseUrl\":\"http://localhost:5189\",\"webAppMutexName\":\"HttpClientStudy.WebApp\"},\"code\":1,\"message\":\"成功\"}\n", + "异常请求结果:StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:\n", + "{\n", + " Date: Tue, 13 May 2025 04:30:54 GMT\n", + " Server: Kestrel\n", + " Transfer-Encoding: chunked\n", + " X-WebApi-UseTime: 685\n", + " Content-Type: text/plain; charset=utf-8\n", + "}\n" + ] + } + ], + "source": [ + "//静态类中处理异常\n", + "public class HttpClientHelper\n", + "{\n", + " public readonly static HttpClient StaticClient;\n", + "\n", + " static HttpClientHelper()\n", + " {\n", + " SocketsHttpHandler handler = new SocketsHttpHandler()\n", + " {\n", + " PooledConnectionLifetime = TimeSpan.FromSeconds(30),\n", + " };\n", + "\n", + " StaticClient = new HttpClient(handler)\n", + " {\n", + " //统一设置: 基础Uri\n", + " BaseAddress = new Uri(WebApiConfigManager.GetWebApiConfig().BaseUrl),\n", + " };\n", + "\n", + " //统一设置:请求头等\n", + " StaticClient.DefaultRequestHeaders.Add(\"x-custom-time\",\"12ms\");\n", + "\n", + " //统一错误处理:可以在Pipline中统一设置,后面有单独章节\n", + " } \n", + "\n", + " public static async Task GetAsync(string url)\n", + " {\n", + " //异常处理\n", + " try\n", + " {\n", + " return await StaticClient.GetAsync(url);\n", + " }\n", + " catch(Exception ex)\n", + " {\n", + " Console.WriteLine($\"远程调用发生异常:{ex.Message}\");\n", + " return await Task.FromResult(new HttpResponseMessage(HttpStatusCode.ExpectationFailed));\n", + " }\n", + " finally\n", + " {\n", + " //清理业务\n", + " }\n", + " }\n", + "\n", + " public static async Task GetStringAsync(string url)\n", + " {\n", + " var response = await StaticClient.GetAsync(url);\n", + "\n", + " //异常处理\n", + " response.EnsureSuccessStatusCode();\n", + " return await response.Content.ReadAsStringAsync();\n", + " }\n", + "\n", + " public static async Task PostAsync(string url, HttpContent content)\n", + " {\n", + " //异常处理\n", + " try\n", + " {\n", + " return await StaticClient.PostAsync(url, content);\n", + " }\n", + " catch(Exception ex)\n", + " {\n", + " Console.WriteLine($\"远程调用发生异常:{ex.Message}\");\n", + " return await Task.FromResult(new HttpResponseMessage(HttpStatusCode.ExpectationFailed));\n", + " }\n", + " finally\n", + " {\n", + " //清理业务\n", + " }\n", + " }\n", + "}\n", + "\n", + "{ //正常请求\n", + " var response = await HttpClientHelper.GetAsync(\"/api/Config/GetApiConfig\");\n", + " var content = await response.Content.ReadAsStringAsync();\n", + " Console.WriteLine($\"正常请求结果:{content}\");\n", + "\n", + " //异常请求\n", + " var response2 = await HttpClientHelper.GetAsync(\"/api/ErrorDemo/Error500\");\n", + " Console.WriteLine($\"异常请求结果:{response2}\");\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 添加异常Pipeline管道(下面专项介绍)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 类型化客户端中处理" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "类型化客户端有三种方法:一是类内部处理;二是Pipeline,统一处理;三是结合IoC/工厂和Polly库,初始设置时统一处理。\n", + "\n", + "推荐第二、第三种,后面有专项介绍。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 内部处理,类似静态或工具类" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "HttpClientServiceA => 构造函数执行一次\n", + "System.Exception: 服务器异常\n", + " at HttpClientStudy.WebApp.Controllers.ErrorDemoController.Error500() in C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.WebApp\\Controllers\\ErrorDemoController.cs:line 37\n", + " at lambda_method3(Closure, Object, Object[])\n", + " at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n", + " at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Logged|12_1(ControllerActionInvoker invoker)\n", + " at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n", + " at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n", + " at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\n", + " at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()\n", + "--- End of stack trace from previous location ---\n", + " at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n", + " at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker)\n", + " at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker)\n", + " at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger)\n", + " at HttpClientStudy.WebApp.Program.<>c.<
b__0_12>d.MoveNext() in C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.WebApp\\Program.cs:line 258\n", + "--- End of stack trace from previous location ---\n", + " at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n", + " at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n", + " at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)\n", + " at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)\n", + " at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\n", + " at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)\n", + "\n", + "HEADERS\n", + "=======\n", + "Host: 127.0.0.1:5189\n", + "traceparent: 00-8cccd683184035a261e8996c74c87f82-7440f8a982d79135-00\n", + "\n" + ] + } + ], + "source": [ + "// 类型化客户端A HttpClient\n", + "public class HttpClientServiceA\n", + "{\n", + " public HttpClient Client { get; }\n", + " public HttpClientServiceA(HttpClient client)\n", + " {\n", + " Client = client;\n", + " Console.WriteLine(\"HttpClientServiceA => 构造函数执行一次\");\n", + " }\n", + "\n", + " //常规方法:异常可在方法内处理\n", + " public async Task GetAsync()\n", + " {\n", + " var response = await Client.GetAsync(\"/api/ErrorDemo/Error500\");\n", + " var content = await response.Content.ReadAsStringAsync();\n", + " return content;\n", + " }\n", + "}\n", + "\n", + "// 使用类型化客户端\n", + "{\n", + " var services = new ServiceCollection();\n", + " services\n", + " .AddHttpClient()\n", + " .ConfigureHttpClient(client=>\n", + " {\n", + " client.BaseAddress = new Uri(webApiBaseUrl);\n", + " });\n", + "\n", + " var builder = services.BuildServiceProvider();\n", + " var serverA = builder.GetRequiredService();\n", + "\n", + " var dataA = await serverA.GetAsync();\n", + " Console.WriteLine(dataA);\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 与工厂和Polly库统合,统一处理(下面专项介绍)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 添加异常Pipeline管道(下面专项介绍)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 在管道中,添加异常中间件" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "不管那种方式创建的客户端,都可以配置Pipeline,专门添加异常管道中间件进行异常统一处理,也很推荐这种方式。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 准备异常处理中间件" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [ + "//异常中间件(管道)类\n", + "public class ExceptionDelegatingHandler : DelegatingHandler\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": [ + "+ 直接创建客户端时,加入异常管道" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ExceptionDelegatingHandler -> SendAsync -> Before\n", + "异常管道中间件,监控到异常:Response status code does not indicate success: 500 (Internal Server Error).\n", + "ExceptionDelegatingHandler -> SendAsync -> After\n", + "远程请求失败,响应码 ExpectationFailed\n" + ] + } + ], + "source": [ + "{\n", + "\n", + " //构建管道(加入异常中间件)\n", + " var handler = new ExceptionDelegatingHandler()\n", + " {\n", + " //相当于下一个中间件(管道)\n", + " //最后中间件必须是SocketsHttpHandler\n", + " InnerHandler = new SocketsHttpHandler() \n", + " {\n", + " AllowAutoRedirect = true\n", + " }\n", + " };\n", + "\n", + " //构造中传入管道对象\n", + " using(var client = new HttpClient(handler){BaseAddress = new Uri(webApiBaseUrl)})\n", + " {\n", + " //发送请求\n", + " var response = await client.GetAsync(\"/api/ErrorDemo/Error500\");\n", + "\n", + " if(response.IsSuccessStatusCode)\n", + " {\n", + " Console.WriteLine($\"远程请求成功,响应码 {response.StatusCode}\");\n", + " }\n", + " else\n", + " {\n", + " Console.WriteLine($\"远程请求失败,响应码 {response.StatusCode}\");\n", + " }\n", + " }\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 静态或工具类,加入异常管道" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "配置文件根目录:c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n", + "ExceptionDelegatingHandler -> SendAsync -> Before\n", + "ExceptionDelegatingHandler -> SendAsync -> After\n", + "正常请求结果:{\"data\":{\"host\":\"localhost\",\"port\":5189,\"scheme\":\"http\",\"pathBase\":\"\",\"baseUrl\":\"http://localhost:5189\",\"webAppMutexName\":\"HttpClientStudy.WebApp\"},\"code\":1,\"message\":\"成功\"}\n", + "ExceptionDelegatingHandler -> SendAsync -> Before\n", + "异常管道中间件,监控到异常:Response status code does not indicate success: 500 (Internal Server Error).\n", + "ExceptionDelegatingHandler -> SendAsync -> After\n", + "异常请求结果:StatusCode: 417, ReasonPhrase: 'Expectation Failed', Version: 1.1, Content: System.Net.Http.EmptyContent, Headers:\n", + "{\n", + " Content-Length: 0\n", + "}\n" + ] + } + ], + "source": [ + "//静态类中处理异常\n", + "public class HttpClientHelper2\n", + "{\n", + " public readonly static HttpClient StaticClient;\n", + "\n", + " static HttpClientHelper2()\n", + " {\n", + " //构建管道(加入异常中间件)\n", + " var handler = new ExceptionDelegatingHandler()\n", + " {\n", + " //相当于下一个中间件(管道)\n", + " //最后中间件必须是SocketsHttpHandler\n", + " InnerHandler = new SocketsHttpHandler() \n", + " {\n", + " AllowAutoRedirect = true,\n", + " PooledConnectionLifetime = TimeSpan.FromSeconds(30),\n", + " }\n", + " };\n", + "\n", + " StaticClient = new HttpClient(handler)\n", + " {\n", + " //统一设置: 基础Uri\n", + " BaseAddress = new Uri(WebApiConfigManager.GetWebApiConfig().BaseUrl),\n", + " };\n", + "\n", + " //统一设置:请求头等\n", + " StaticClient.DefaultRequestHeaders.Add(\"x-custom-time\",\"12ms\");\n", + "\n", + " //统一错误处理:可以在Pipline中统一设置,后面有单独章节\n", + " } \n", + "\n", + " public static async Task GetAsync(string url)\n", + " {\n", + " return await StaticClient.GetAsync(url);\n", + " }\n", + "\n", + " public static async Task GetStringAsync(string url)\n", + " {\n", + " var response = await StaticClient.GetAsync(url);\n", + "\n", + " //无异常处理\n", + "\n", + " return await response.Content.ReadAsStringAsync();\n", + " }\n", + "\n", + " public static async Task PostAsync(string url, HttpContent content)\n", + " {\n", + " //无异常处理\n", + " return await StaticClient.PostAsync(url,content);\n", + " }\n", + "}\n", + "\n", + "{ //正常请求\n", + " var response = await HttpClientHelper2.GetAsync(\"/api/Config/GetApiConfig\");\n", + " var content = await response.Content.ReadAsStringAsync();\n", + " Console.WriteLine($\"正常请求结果:{content}\");\n", + "\n", + " //异常请求\n", + " var response2 = await HttpClientHelper2.GetAsync(\"/api/ErrorDemo/Error500\");\n", + " Console.WriteLine($\"异常请求结果:{response2}\");\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 类型化客户端,加入异常管道" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "HttpClientServiceC => 构造函数执行一次\n", + "ExceptionDelegatingHandler -> SendAsync -> Before\n", + "异常管道中间件,监控到异常:Response status code does not indicate success: 500 (Internal Server Error).\n", + "ExceptionDelegatingHandler -> SendAsync -> After\n", + "响应数据为:\n" + ] + } + ], + "source": [ + "// 类型化客户端A HttpClient\n", + "public class HttpClientServiceC\n", + "{\n", + " public HttpClient Client { get; }\n", + " public HttpClientServiceC(HttpClient client)\n", + " {\n", + " Client = client;\n", + " Console.WriteLine(\"HttpClientServiceC => 构造函数执行一次\");\n", + " }\n", + "\n", + " //常规方法:异常可在方法内处理\n", + " public async Task GetAsync()\n", + " {\n", + " var response = await Client.GetAsync(\"/api/ErrorDemo/Error500\");\n", + " var content = await response.Content.ReadAsStringAsync();\n", + " return content;\n", + " }\n", + "}\n", + "\n", + "// 使用类型化客户端\n", + "{\n", + " var services = new ServiceCollection();\n", + " services\n", + " //1、注入异常管道到服务\n", + " .AddTransient()\n", + " .AddHttpClient()\n", + " .ConfigureHttpClient(client=>\n", + " {\n", + " client.BaseAddress = new Uri(webApiBaseUrl);\n", + " })\n", + " //2、添加异常管道至客户端\n", + " .AddHttpMessageHandler();\n", + "\n", + " var builder = services.BuildServiceProvider();\n", + " var serverC = builder.GetRequiredService();\n", + "\n", + " var dataC = await serverC.GetAsync();\n", + " Console.WriteLine($\"响应数据为:{dataC}\");\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "+ 工厂,加入异常管道" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ExceptionDelegatingHandler -> SendAsync -> Before\n", + "ExceptionDelegatingHandler -> SendAsync -> After\n", + "Pong\n", + "ExceptionDelegatingHandler -> SendAsync -> Before\n", + "异常管道中间件,监控到异常:Response status code does not indicate success: 500 (Internal Server Error).\n", + "ExceptionDelegatingHandler -> SendAsync -> After\n", + "响应码:ExpectationFailed\n" + ] + } + ], + "source": [ + "//使用\n", + "{\n", + " var services = new ServiceCollection();\n", + "\n", + " //基础配置\n", + " services\n", + " //1、注入异常管道到服务\n", + " .AddTransient()\n", + " //全局配置\n", + " .ConfigureHttpClientDefaults(clientBuilder =>\n", + " {\n", + " clientBuilder.AddDefaultLogger();\n", + " clientBuilder.ConfigureHttpClient(client => \n", + " {\n", + " client.BaseAddress = new Uri(webApiBaseUrl);\n", + " });\n", + " });\n", + "\n", + " //默认命名客户端\n", + " services.AddHttpClient(string.Empty, config => \n", + " {\n", + " config.DefaultRequestHeaders.Add(\"X-Custom-Demo\", \"true\");\n", + " })\n", + "\n", + " //配置客户端\n", + " .ConfigureHttpClient(client => \n", + " {\n", + " client.BaseAddress = new Uri(webApiBaseUrl);\n", + " client.Timeout = TimeSpan.FromSeconds(10);\n", + " })\n", + "\n", + " //添加类型化客户端\n", + " //.AddTypedClient()\n", + "\n", + " //2、添加异常管道至客户端\n", + " .AddHttpMessageHandler()\n", + "\n", + " //配置SocketsHttpHandler\n", + " .UseSocketsHttpHandler(config =>\n", + " {\n", + " //配置连接池等\n", + " config.Configure((handler,provider) => \n", + " {\n", + " handler.AllowAutoRedirect = true;\n", + " handler.PooledConnectionIdleTimeout = TimeSpan.FromSeconds(30);\n", + " handler.PooledConnectionLifetime = TimeSpan.FromSeconds(30);\n", + " handler.UseProxy = false;\n", + " handler.UseCookies = true;\n", + " });\n", + " })\n", + " //设置生命周期\n", + " .SetHandlerLifetime(TimeSpan.FromSeconds(30))\n", + " //Polly策略配置\n", + " //.AddPolicyHandler(policy)\n", + " //便捷配置\n", + " //.AddTransientHttpErrorPolicy(builder => builder.CircuitBreakerAsync(11, TimeSpan.FromSeconds(30)))\n", + " ;\n", + "\n", + " \n", + " var factory = services.BuildServiceProvider().GetRequiredService();\n", + "\n", + " //正常请求\n", + " var defaultClient = factory.CreateClient();\n", + " var defaultContent = await defaultClient.GetStringAsync(\"api/hello/ping\");\n", + " Console.WriteLine(defaultContent);\n", + "\n", + " //异常请求\n", + " var clientA = factory.CreateClient();\n", + " var responseA = await clientA.GetAsync(\"/api/ErrorDemo/Error500\");\n", + " Console.WriteLine($\"响应码:{responseA.StatusCode}\");\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 工厂 + Polly库处理" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Polly库提供了多种多样的超时、异常等功能,非常推荐使用(可以配合IoC/工厂)。\n", + "\n", + "下面是简单例子:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "正常请求, 响应内容: Pong\n", + "运程调用发性异常,Polly进行了回退!\n", + "异常请求,响应码:InternalServerError\n" + ] + } + ], + "source": [ + "//polly策略\n", + "var policy = Policy\n", + " .Handle()\n", + " .OrResult(message => message.StatusCode != System.Net.HttpStatusCode.OK)\n", + " //后备策略,代替异常\n", + " .FallbackAsync(async fallbackAction =>\n", + " {\n", + " Console.WriteLine(\"运程调用发性异常,Polly进行了回退!\");\n", + "\n", + " return await Task.FromResult(new HttpResponseMessage(HttpStatusCode.InternalServerError));\n", + " });\n", + "\n", + "//工厂中使用 Polly异常回退策略\n", + "{\n", + " var services = new ServiceCollection();\n", + "\n", + " //默认命名客户端\n", + " services\n", + " .AddHttpClient(string.Empty)\n", + " .ConfigureHttpClient(client => \n", + " {\n", + " client.BaseAddress = new Uri(webApiBaseUrl);\n", + " client.Timeout = TimeSpan.FromSeconds(10);\n", + " })\n", + "\n", + " //Polly策略配置\n", + " .AddPolicyHandler(policy);\n", + "\n", + " \n", + " var factory = services.BuildServiceProvider().GetRequiredService();\n", + "\n", + " //正常请求\n", + " var defaultClient = factory.CreateClient();\n", + " var defaultContent = await defaultClient.GetStringAsync(\"api/hello/ping\");\n", + " Console.WriteLine($\"正常请求, 响应内容: {defaultContent}\");\n", + "\n", + " //异常请求\n", + " var clientA = factory.CreateClient();\n", + " var responseA = await clientA.GetAsync(\"/api/ErrorDemo/Error500\");\n", + " Console.WriteLine($\"异常请求,响应码:{responseA.StatusCode}\");\n", + "}\n" + ] + } + ], + "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.3.6.基础使用.使用Json.ipynb b/Docs/1.3.6.基础使用.使用代理.ipynb similarity index 100% rename from Docs/1.3.6.基础使用.使用Json.ipynb rename to Docs/1.3.6.基础使用.使用代理.ipynb diff --git a/Docs/Assets/HttpClient-异常处理.jpg b/Docs/Assets/HttpClient-异常处理.jpg new file mode 100644 index 0000000000000000000000000000000000000000..876587c731ed807d964252a2d5ffcbc15c7e4514 GIT binary patch literal 180157 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
Installed Packages
  • Microsoft.Extensions.DependencyInjection, 9.0.3
  • Microsoft.Extensions.Http, 9.0.3
  • Microsoft.Extensions.Http.Polly, 9.0.3
  • Microsoft.Extensions.Logging, 9.0.3
  • Microsoft.Extensions.Logging.Console, 9.0.3
  • Microsoft.Net.Http.Headers, 9.0.3
  • Polly, 8.5.2
  • Refit, 8.0.0
  • Refit.HttpClientFactory, 8.0.0
  • System.Net.Http.Json, 9.0.3
" + "
Installed Packages
  • Microsoft.Extensions.DependencyInjection, 9.0.4
  • Microsoft.Extensions.Http, 9.0.4
  • Microsoft.Extensions.Http.Polly, 9.0.4
  • Microsoft.Extensions.Logging, 9.0.4
  • Microsoft.Extensions.Logging.Console, 9.0.4
  • Microsoft.Net.Http.Headers, 9.0.4
  • Polly, 8.5.2
  • Refit, 8.0.0
  • Refit.HttpClientFactory, 8.0.0
  • System.Net.Http.Json, 9.0.4
" ] }, "metadata": {}, @@ -32,10 +32,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "配置文件根目录:d:\\软件项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n", - "配置文件根目录:d:\\软件项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n", + "配置文件根目录:c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n", + "配置文件根目录:c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n", "启动WebApi项目...\n", - "程序[d:\\软件项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.exe]已在新的命令行窗口执行。如果未出现新命令行窗口,可能是程序错误造成窗口闪现!\n", + "程序[c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.exe]已在新的命令行窗口执行。如果未出现新命令行窗口,可能是程序错误造成窗口闪现!\n", "已启动WebApi项目,保持窗口打开状态!\n", "初始化完成!\n" ] @@ -106,6 +106,7 @@ "\n", "//全局变量\n", "var webApiBaseUrl = WebApiConfigManager.GetWebApiConfig().BaseUrl;\n", + "var webApiBaseUri = new Uri(webApiBaseUrl);\n", "var workDir = Environment.CurrentDirectory;\n", "var fullPath = System.IO.Path.GetFullPath(\"./Publish/HttpClientStudy.WebApp/HttpClientStudy.WebApp.exe\", workDir);\n", "//fullPath.Display();\n",