diff --git a/Docs/1.3.2.基础使用.使用请求数据.ipynb b/Docs/1.3.2.基础使用.使用请求数据.ipynb
index a7b8603..7864369 100644
--- a/Docs/1.3.2.基础使用.使用请求数据.ipynb
+++ b/Docs/1.3.2.基础使用.使用请求数据.ipynb
@@ -33,7 +33,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 13,
    "metadata": {
     "dotnet_interactive": {
      "language": "csharp"
@@ -59,9 +59,9 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "配置文件根目录:d:\\软件项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n",
+      "配置文件根目录:e:\\王高峰\\我的项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\n",
       "启动WebApi项目\n",
-      "程序[d:\\软件项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.exe]已在新的命令行窗口执行。如果未出现新命令行窗口,可能是程序错误造成窗口闪现!\n"
+      "程序[e:\\王高峰\\我的项目\\学习项目\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.exe]已在新的命令行窗口执行。如果未出现新命令行窗口,可能是程序错误造成窗口闪现!\n"
      ]
     }
    ],
@@ -117,6 +117,141 @@
     "## 1、使用url 传参"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "参数放在Url里,形如:http://www.baidu.com?name=zhangsan&age=18, GET、Head请求用的比较多。优点是简单、方便,能被浏览器缓存;缺点是参数长度等限制较多,数据暴露url中,可能比较长。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {
+    "vscode": {
+     "languageId": "polyglot-notebook"
+    }
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{\"data\":{\"id\":1,\"name\":\"管理员01\",\"password\":\"123456\",\"role\":\"Admin\"},\"code\":1,\"message\":\"成功\"}\r\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": [
+    "/**\n",
+    "    URL传参:适合简单数据类型\n",
+    "*/\n",
+    "{\n",
+    "    //获取响应字符串\n",
+    "    {\n",
+    "        var response = await SharedClient.GetAsync(\"api/Normal/GetAccount?id=1\");\n",
+    "        response.EnsureSuccessStatusCode();\n",
+    "        var content = await response.Content.ReadAsStringAsync();\n",
+    "        Console.WriteLine(content);\n",
+    "    }\n",
+    "\n",
+    "    //获取响应对象\n",
+    "    {\n",
+    "        var response = await SharedClient.GetAsync(\"api/Normal/GetAccount?id=1\");\n",
+    "        response.EnsureSuccessStatusCode();\n",
+    "\n",
+    "        var result = await response.Content.ReadFromJsonAsync<BaseResult<Account>>();\n",
+    "        result.Display();\n",
+    "    }\n",
+    "\n",
+    "    //直接获取响应对象\n",
+    "    {\n",
+    "        var result = await SharedClient.GetFromJsonAsync<BaseResult<Account>>(\"api/Normal/GetAccount?id=1\");\n",
+    "        result.Display();\n",
+    "    }\n",
+    "    \n",
+    "}"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -124,6 +259,49 @@
     "## 2、使用路由传参"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "路由参数,指参数使为URL的一部分,一般由后端API设定好,前端按规定使用即可。例如:后端指定/user/:id,前端使用/user/1,此时id为路由参数。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {
+    "vscode": {
+     "languageId": "polyglot-notebook"
+    }
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{\"data\":{\"id\":1,\"name\":\"管理员01\",\"password\":\"123456\",\"role\":\"Admin\"},\"code\":1,\"message\":\"成功\"}\r\n"
+     ]
+    }
+   ],
+   "source": [
+    "/*\n",
+    "** 路由参数:参数是URL的一部分,由后端指定\n",
+    "*/\n",
+    "{//大括号:方便折叠、开成单独的作用域\n",
+    "\n",
+    "    var response = await SharedClient.GetAsync(\"api/Normal/GetAccount/管理员01\");\n",
+    "    \n",
+    "    //确定是成功的响应\n",
+    "    response.EnsureSuccessStatusCode();\n",
+    "\n",
+    "    //获取响应内容\n",
+    "    var content = await response.Content.ReadAsStringAsync();\n",
+    "\n",
+    "    //输出 \n",
+    "    Console.WriteLine(content);\n",
+    "}"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -131,6 +309,62 @@
     "## 3、使用请求头"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "把请求数据放入请求头中,传给后端。当然也可以传多个数据。不过,请求头中传数据限制比较多,一般只传简单的数据:比如jwt token 。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 35,
+   "metadata": {
+    "vscode": {
+     "languageId": "polyglot-notebook"
+    }
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{\"data\":{\"id\":1,\"name\":\"管理员01\",\"password\":\"123456\",\"role\":\"Admin\"},\"code\":1,\"message\":\"成功\"}\r\n"
+     ]
+    }
+   ],
+   "source": [
+    "/*\n",
+    "* 请求头: 值必须是字符串,如果有中文等需进行编码\n",
+    "*/\n",
+    "{\n",
+    "    //设置请求头\n",
+    "\n",
+    "    //中文先编码,服务端接收后要解码\n",
+    "    var codedName = System.Net.WebUtility.UrlEncode(\"管理员01\");\n",
+    "\n",
+    "    //SharedClient是共用的,所以不能多次添加,先移除旧值\n",
+    "    if (SharedClient.DefaultRequestHeaders.Contains(\"name\"))\n",
+    "    {\n",
+    "        SharedClient.DefaultRequestHeaders.Remove(\"name\");\n",
+    "    }\n",
+    "    \n",
+    "    //添加请求头\n",
+    "    SharedClient.DefaultRequestHeaders.Add(\"name\", codedName);\n",
+    "\n",
+    "    var response = await SharedClient.GetAsync(\"api/Normal/GetAccountFromHeader\");\n",
+    "    \n",
+    "    //确定是成功的响应\n",
+    "    response.EnsureSuccessStatusCode();\n",
+    "\n",
+    "    //获取响应内容\n",
+    "    var content = await response.Content.ReadAsStringAsync();\n",
+    "\n",
+    "    //输出 \n",
+    "    Console.WriteLine(content);\n",
+    "}"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -138,12 +372,98 @@
     "## 4、使用Form表单"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "简单的Form表单,提交数据。其实是把数据放请求值的一种,后页有详细介绍。"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 46,
+   "metadata": {
+    "vscode": {
+     "languageId": "polyglot-notebook"
+    }
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{\"data\":\"Id=1&name=管理员01\",\"code\":1,\"message\":\"成功\"}\r\n"
+     ]
+    }
+   ],
+   "source": [
+    "/*\n",
+    "*   Form表单,提交数据。一般为Put或Post提交。\n",
+    "*/\n",
+    "{\n",
+    "    // 创建一个MultipartFormDataContent对象,用来存入 Form表单独项及值\n",
+    "    var formContent = new MultipartFormDataContent();\n",
+    " \n",
+    "    // 添加表单字段\n",
+    "    formContent.Add(new StringContent(\"1\"), \"id\");\n",
+    "    formContent.Add(new StringContent(\"管理员01\"), \"name\");\n",
+    " \n",
+    "    // 发送POST请求\n",
+    "    var response = await SharedClient.PostAsync(\"api/AdvancedGet/PostFormData\", formContent);\n",
+    " \n",
+    "    // 读取响应内容\n",
+    "    string responseString = await response.Content.ReadAsStringAsync();\n",
+    " \n",
+    "    Console.WriteLine(responseString);\n",
+    "}"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
     "## 5、使用请求体"
    ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "把数据放在请求体中,发送到服务端。可以是简单的字符串,也可以是二进制数据(上传文件)、form表单项、编码过的form表单项、json、流式数据等形式,甚至是这个类型的组合。\n",
+    "所以请求体也分为这几种(常见的)类型:\n",
+    "1. StringContent\n",
+    "2. ByteArrayContent\n",
+    "3. FormUrlEncodedContent\n",
+    "4. JsonContent\n",
+    "5. StreamContent\n",
+    "6. MultipartContent\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "vscode": {
+     "languageId": "polyglot-notebook"
+    }
+   },
+   "source": [
+    "### StringContent 普通文本(也包括很多格式,甚至是自定义格式。要和服务器配合)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "vscode": {
+     "languageId": "polyglot-notebook"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "{\n",
+    "    StringContent content = new StringContent(\"\",Encoding.UTF8, System.Net.Mime.MediaTypeNames.Text.Plain);\n",
+    "}"
+   ]
   }
  ],
  "metadata": {
diff --git a/HttpClientStudy.WebApp/Controllers/AdvancedGetController.cs b/HttpClientStudy.WebApp/Controllers/AdvancedGetController.cs
index 7d33b3e..61dd2c2 100644
--- a/HttpClientStudy.WebApp/Controllers/AdvancedGetController.cs
+++ b/HttpClientStudy.WebApp/Controllers/AdvancedGetController.cs
@@ -170,9 +170,9 @@ namespace HttpClientStudy.WebApp.Controllers
         /// </summary>
         /// <returns></returns>
         [HttpPost]
-        public IActionResult PostFormData([FromForm,Required]int Id, [FromForm,Required]string name)
+        public IActionResult PostFormData([FromForm,Required]int id, [FromForm,Required]string name)
         {
-            var paras = $"{nameof(Id)}={Id}&{nameof(name)}={name}";
+            var paras = $"{nameof(id)}={id}&{nameof(name)}={name}";
             var result = BaseResultUtil.Success(paras);
             return Ok(result);
         }
diff --git a/HttpClientStudy.WebApp/Controllers/NormalController.cs b/HttpClientStudy.WebApp/Controllers/NormalController.cs
index 459a308..3b0e72c 100644
--- a/HttpClientStudy.WebApp/Controllers/NormalController.cs
+++ b/HttpClientStudy.WebApp/Controllers/NormalController.cs
@@ -133,6 +133,7 @@ namespace HttpClientStudy.WebApp.Controllers
             var result = BaseResultUtil.Success(account);
             return Ok(result);
         }
+
         #endregion
 
         #region PUT