main
bicijinlian 3 months ago
parent cedf477084
commit 9874797e6a

@ -72,6 +72,8 @@ else {
#!csharp #!csharp
#r "nuget:Microsoft.Extensions.DependencyInjection,8.0.1"
using System; using System;
using System.IO; using System.IO;
using System.Threading; using System.Threading;

@ -26,7 +26,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 1, "execution_count": null,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "csharp" "language": "csharp"
@ -38,16 +38,7 @@
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
}, },
"outputs": [ "outputs": [],
{
"name": "stdout",
"output_type": "stream",
"text": [
"配置文件根目录c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n",
"程序[c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.exe]已在新的命令行窗口执行。如果未出现新命令行窗口,可能是程序错误造成窗口闪现!\n"
]
}
],
"source": [ "source": [
"//全局设置\n", "//全局设置\n",
"#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n", "#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n",
@ -119,7 +110,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": 3,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "pwsh" "language": "pwsh"
@ -696,7 +687,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": 13,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "csharp" "language": "csharp"

@ -48,10 +48,10 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"//全局设置,行运行一次,为后续准备\n", "//全局设置,行运行一次,为后续准备\n",
"#r \"nuget:System.Net.Http.Json\"\n", "//#r \"nuget:Microsoft.Net.Http.Headers,8.0.12\"\n",
"#r \"nuget:Microsoft.Net.Http.Headers\"\n", "//#r \"nuget:Microsoft.Extensions.Http,8.0.1\"\n",
"#r \"nuget:Microsoft.Extensions.Http\"\n", "//#r \"nuget:System.Net.Http.Json,8.0.1\"\n",
"#r \"nuget:Microsoft.Extensions.DependencyInjection\"\n", "//#r \"nuget:Microsoft.Extensions.DependencyInjection,8.0.1\"\n",
"#r \"./Publish/HttpClientStudy.Model/HttpClientStudy.Model.dll\"\n", "#r \"./Publish/HttpClientStudy.Model/HttpClientStudy.Model.dll\"\n",
"#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n", "#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n",
"\n", "\n",

@ -33,7 +33,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 1, "execution_count": null,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "csharp" "language": "csharp"
@ -45,33 +45,14 @@
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
}, },
"outputs": [ "outputs": [],
{
"data": {
"text/html": [
"<div><div></div><div></div><div><strong>Installed Packages</strong><ul><li><span>Microsoft.Extensions.Http, 8.0.0</span></li><li><span>Microsoft.Net.Http.Headers, 8.0.8</span></li><li><span>System.Net.Http.Json, 8.0.0</span></li></ul></div></div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"配置文件根目录e:\\王高峰\\我的项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n",
"启动WebApi项目\n",
"程序[e:\\王高峰\\我的项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.exe]已在新的命令行窗口执行。如果未出现新命令行窗口,可能是程序错误造成窗口闪现!\n"
]
}
],
"source": [ "source": [
"//初始化,只执行一次\n", "//初始化,只执行一次\n",
"\n", "\n",
"// 引用nuget包和类库文件\n", "// 引用nuget包和类库文件\n",
"#r \"nuget:System.Net.Http.Json\"\n", "//#r \"nuget:Microsoft.Net.Http.Headers,8.0.12\"\n",
"#r \"nuget:Microsoft.Net.Http.Headers\"\n", "//#r \"nuget:Microsoft.Extensions.Http,8.0.1\"\n",
"#r \"nuget:Microsoft.Extensions.Http\"\n", "//#r \"nuget:System.Net.Http.Json,8.0.1\"\n",
"#r \"./Publish/HttpClientStudy.Model/HttpClientStudy.Model.dll\"\n", "#r \"./Publish/HttpClientStudy.Model/HttpClientStudy.Model.dll\"\n",
"#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n", "#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n",
"\n", "\n",
@ -126,7 +107,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 13, "execution_count": null,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "csharp" "language": "csharp"
@ -138,96 +119,7 @@
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
}, },
"outputs": [ "outputs": [],
{
"name": "stdout",
"output_type": "stream",
"text": [
"配置文件根目录e:\\王高峰\\我的项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n",
"{\"data\":{\"id\":1,\"name\":\"管理员01\",\"password\":\"123456\",\"role\":\"Admin\"},\"code\":1,\"message\":\"成功\"}\n"
]
},
{
"data": {
"text/html": [
"<details open=\"open\" class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>HttpClientStudy.Model.BaseResult`1[HttpClientStudy.Model.Account]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Data</td><td><div class=\"dni-plaintext\"><pre>HttpClientStudy.Model.BaseResult`1[HttpClientStudy.Model.Account]</pre></div></td></tr><tr><td>Code</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>Message</td><td><div class=\"dni-plaintext\"><pre>成功</pre></div></td></tr><tr><td>Data</td><td><div class=\"dni-plaintext\"><pre>HttpClientStudy.Model.BaseResult`1[HttpClientStudy.Model.Account]</pre></div></td></tr></tbody></table></div></details><style>\r\n",
".dni-code-hint {\r\n",
" font-style: italic;\r\n",
" overflow: hidden;\r\n",
" white-space: nowrap;\r\n",
"}\r\n",
".dni-treeview {\r\n",
" white-space: nowrap;\r\n",
"}\r\n",
".dni-treeview td {\r\n",
" vertical-align: top;\r\n",
" text-align: start;\r\n",
"}\r\n",
"details.dni-treeview {\r\n",
" padding-left: 1em;\r\n",
"}\r\n",
"table td {\r\n",
" text-align: start;\r\n",
"}\r\n",
"table tr { \r\n",
" vertical-align: top; \r\n",
" margin: 0em 0px;\r\n",
"}\r\n",
"table tr td pre \r\n",
"{ \r\n",
" vertical-align: top !important; \r\n",
" margin: 0em 0px !important;\r\n",
"} \r\n",
"table th {\r\n",
" text-align: start;\r\n",
"}\r\n",
"</style>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<details open=\"open\" class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>HttpClientStudy.Model.BaseResult`1[HttpClientStudy.Model.Account]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Data</td><td><div class=\"dni-plaintext\"><pre>HttpClientStudy.Model.BaseResult`1[HttpClientStudy.Model.Account]</pre></div></td></tr><tr><td>Code</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>Message</td><td><div class=\"dni-plaintext\"><pre>成功</pre></div></td></tr><tr><td>Data</td><td><div class=\"dni-plaintext\"><pre>HttpClientStudy.Model.BaseResult`1[HttpClientStudy.Model.Account]</pre></div></td></tr></tbody></table></div></details><style>\r\n",
".dni-code-hint {\r\n",
" font-style: italic;\r\n",
" overflow: hidden;\r\n",
" white-space: nowrap;\r\n",
"}\r\n",
".dni-treeview {\r\n",
" white-space: nowrap;\r\n",
"}\r\n",
".dni-treeview td {\r\n",
" vertical-align: top;\r\n",
" text-align: start;\r\n",
"}\r\n",
"details.dni-treeview {\r\n",
" padding-left: 1em;\r\n",
"}\r\n",
"table td {\r\n",
" text-align: start;\r\n",
"}\r\n",
"table tr { \r\n",
" vertical-align: top; \r\n",
" margin: 0em 0px;\r\n",
"}\r\n",
"table tr td pre \r\n",
"{ \r\n",
" vertical-align: top !important; \r\n",
" margin: 0em 0px !important;\r\n",
"} \r\n",
"table th {\r\n",
" text-align: start;\r\n",
"}\r\n",
"</style>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [ "source": [
"/**\n", "/**\n",
" URL传参适合简单数据类型\n", " URL传参适合简单数据类型\n",
@ -275,7 +167,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 14, "execution_count": null,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "csharp" "language": "csharp"
@ -287,15 +179,7 @@
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
}, },
"outputs": [ "outputs": [],
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\"data\":{\"id\":1,\"name\":\"管理员01\",\"password\":\"123456\",\"role\":\"Admin\"},\"code\":1,\"message\":\"成功\"}\r\n"
]
}
],
"source": [ "source": [
"/*\n", "/*\n",
"** 路由参数参数是URL的一部分,由后端指定\n", "** 路由参数参数是URL的一部分,由后端指定\n",
@ -331,7 +215,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 15, "execution_count": null,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "csharp" "language": "csharp"
@ -343,15 +227,7 @@
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
}, },
"outputs": [ "outputs": [],
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\"data\":{\"id\":1,\"name\":\"管理员01\",\"password\":\"123456\",\"role\":\"Admin\"},\"code\":1,\"message\":\"成功\"}\r\n"
]
}
],
"source": [ "source": [
"/*\n", "/*\n",
"* 请求头: 值必须是字符串,如果有中文等需进行编码\n", "* 请求头: 值必须是字符串,如果有中文等需进行编码\n",
@ -429,21 +305,19 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 13, "execution_count": null,
"metadata": { "metadata": {
"dotnet_interactive": {
"language": "csharp"
},
"polyglot_notebook": {
"kernelName": "csharp"
},
"vscode": { "vscode": {
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
}, },
"outputs": [ "outputs": [],
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\"data\":\"id=1&name=管理员01\",\"code\":1,\"message\":\"成功\"}\r\n"
]
}
],
"source": [ "source": [
"/*\n", "/*\n",
"* Form表单提交数据。一般为Put或Post提交。\n", "* Form表单提交数据。一般为Put或Post提交。\n",
@ -475,8 +349,14 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": 6,
"metadata": { "metadata": {
"dotnet_interactive": {
"language": "csharp"
},
"polyglot_notebook": {
"kernelName": "csharp"
},
"vscode": { "vscode": {
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
@ -504,7 +384,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 11, "execution_count": null,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "csharp" "language": "csharp"
@ -516,15 +396,7 @@
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
}, },
"outputs": [ "outputs": [],
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\"data\":\"我是请求体第一段内容\",\"code\":1,\"message\":\"成功\"}\r\n"
]
}
],
"source": [ "source": [
"/*\n", "/*\n",
" \n", " \n",

@ -28,7 +28,103 @@
} }
}, },
"source": [ "source": [
"## 1、复用" "## 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 接收响应体数据"
] ]
} }
], ],

@ -33,7 +33,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 25, "execution_count": null,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "csharp" "language": "csharp"
@ -45,41 +45,7 @@
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
}, },
"outputs": [ "outputs": [],
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.0项目管理.dib\n",
"1.1.概述.ipynb\n",
"1.2.使用准则.ipynb\n",
"1.3.0.基础使用.管理客户端.ipynb\n",
"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",
"1.3.6.基础使用.使用Json.ipynb\n",
"1.3.7.基础使用.使用Cookie.ipynb\n",
"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",
"1.4.7.高级使用.Polly.ipynb\n",
"1.5.总结.ipynb\n",
"1.6.测试.ipynb\n",
"2.1.内核中的各种路径.ipynb\n",
"Assets\n",
"Publish\n",
"学习.ps1\n",
"说明.md\n",
"\r\n"
]
}
],
"source": [ "source": [
"//引用项目\n", "//引用项目\n",
"#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n", "#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n",
@ -141,7 +107,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 53, "execution_count": null,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "pwsh" "language": "pwsh"
@ -153,23 +119,7 @@
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
}, },
"outputs": [ "outputs": [],
{
"name": "stdout",
"output_type": "stream",
"text": [
"进程没有找到,可能已经关闭\r\n"
]
},
{
"ename": "Error",
"evalue": "Command failed: SubmitCode: # 关闭项目进程 ...",
"output_type": "error",
"traceback": [
"Command failed: SubmitCode: # 关闭项目进程 ..."
]
}
],
"source": [ "source": [
"# 关闭项目进程\n", "# 关闭项目进程\n",
"$WebAppProcName =\"HttpClientStudy.WebApp\";\n", "$WebAppProcName =\"HttpClientStudy.WebApp\";\n",
@ -193,7 +143,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 47, "execution_count": null,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "csharp" "language": "csharp"
@ -205,24 +155,7 @@
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
}, },
"outputs": [ "outputs": [],
{
"data": {
"text/plain": [
"c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.exe"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"程序[c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.exe]已在新的命令行窗口执行。如果未出现新命令行窗口,可能是程序错误造成窗口闪现!\r\n"
]
}
],
"source": [ "source": [
"//启动已发布的WebApi项目\n", "//启动已发布的WebApi项目\n",
"#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n", "#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n",
@ -239,7 +172,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 46, "execution_count": null,
"metadata": { "metadata": {
"dotnet_interactive": { "dotnet_interactive": {
"language": "csharp" "language": "csharp"
@ -251,16 +184,7 @@
"languageId": "polyglot-notebook" "languageId": "polyglot-notebook"
} }
}, },
"outputs": [ "outputs": [],
{
"name": "stdout",
"output_type": "stream",
"text": [
"配置文件根目录c:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n",
"WebApi程序[进程号:,进程名:],已关闭!\n"
]
}
],
"source": [ "source": [
"//关闭项目进程\n", "//关闭项目进程\n",
"#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n", "#r \"./Publish/HttpClientStudy.Core/HttpClientStudy.Core.dll\"\n",

@ -0,0 +1,5 @@
{
"sdk": {
"version": "8.0"
}
}
Loading…
Cancel
Save