" var response = await SharedClient.GetAsync(\"/api/hello/GetAccount\");\n",
" response.EnsureSuccessStatusCode();\n",
"\n",
" var content = await response.Content.ReadFromJsonAsync<HttpClientStudy.Model.Account>();\n",
" content.Display();\n",
"}\n",
"\n",
"/*\n",
" 方式三:手动序列化读取的响应内容\n",
"*/\n",
"{\n",
" var response = await SharedClient.GetAsync(\"/api/hello/GetAccount\");\n",
" response.EnsureSuccessStatusCode();\n",
"\n",
" var content = await response.Content.ReadAsStringAsync();\n",
" \n",
" var account = System.Text.Json.JsonSerializer.Deserialize<HttpClientStudy.Model.Account>(content);\n",
" account.Display();\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## HTTP Post"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"POST 请求将数据发送到服务器进行处理。 请求的 Content-Type 标头表示正文发送的 MIME 类型。 要在给定 HttpClient 和 Uri 的情况下发出 HTTP POST 请求,请使用 HttpClient.PostAsync 方法.\n",
"请求数据可选:包括 请求URL、路由、请求头、请求体(包括多种方式,后面详解)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
},
"polyglot_notebook": {
"kernelName": "csharp"
},
"vscode": {
"languageId": "polyglot-notebook"
}
},
"outputs": [],
"source": [
"//不带请求体\n",
"{\n",
" var response = await SharedClient.PostAsync(\"/api/hello/Post\",null);\n",
" response.EnsureSuccessStatusCode();\n",
"\n",
" var context = await response.Content.ReadAsStringAsync();\n",
"\n",
" Console.WriteLine(context);\n",
"}\n",
"\n",
"//带请求体\n",
"{\n",
" var account = new Account()\n",
" {\n",
" Id =0,\n",
" Name = \"小王\",\n",
" };\n",
"\n",
" //请求体有很多:后面专门章节讲解\n",
" var requestContent = new StringContent(System.Text.Json.JsonSerializer.Serialize(account), System.Text.Encoding.UTF8, System.Net.Mime.MediaTypeNames.Application.Json);\n",
"\n",
" var response = await SharedClient.PostAsync(\"/api/hello/AddAccount\", requestContent);\n",
" response.EnsureSuccessStatusCode();\n",
"\n",
" var context = await response.Content.ReadAsStringAsync();\n",
"\n",
" Console.WriteLine(context);\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## HTTP Put"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"PUT 请求方法会替换现有资源,或使用请求正文有效负载创建一个新资源。 要在给定 HttpClient 和 URI 的情况下发出 HTTP PUT 请求,请使用 HttpClient.PutAsync 方法。"