HttpClient 使用(一)Get、Post 請求
最近發現不少新人不知道怎么在后臺發起Http請求,簡單分享一下,HttpClient 因為是自帶的,所以選擇分享這個,還有不少優秀的庫,例如 Flurl,或者 Refit。
而說到 Get、Post,就不得不提一下 rest 了,具體是什么呢,感興趣的可以移步看文檔,我不多敘述:傳送門
按照慣例,廢話不多說,代碼走起
GET
using var client = httpClientFactory.CreateClient(); var url = "https://localhost:7237/api/methods/GET/Route/UploaFile?method=GET&value=Query"; var resp = await client.GetAsync(url); var str = await resp.Content.ReadAsStringAsync();
POST
包含文件與表單
var content = new MultipartFormDataContent { { new StringContent("POST", Encoding.UTF8), "Method" }, { new StringContent("Form", Encoding.UTF8), "Value" }, { new StringContent(JsonSerializer.Serialize(new Parameter(){ Method = "POST",Value = "Body"}),Encoding.UTF8, "application/json") }, { new ByteArrayContent(System.IO.File.ReadAllBytes(@"C:\Users\ysmc_\Downloads\file.txt")), "files", "file.txt" } }; using var client = httpClientFactory.CreateClient(); var url = "https://localhost:7237/api/methods/GET/Route/UploaFile?method=GET&value=Query"; var resp = await client.PostAsync(url, content); var str = await resp.Content.ReadAsStringAsync();
API
[HttpPost("{method}/{value}/UploaFile")] public async Task<Dictionary<string, object>> UploadFileAsync( [FromRoute] Parameter route, [FromQuery] Parameter query, [FromForm] Parameter form, IEnumerable<IFormFile> files) { var fileStream = files.FirstOrDefault()?.OpenReadStream(); var fileContent = new StringBuilder(); if (fileStream != null) { using var reader = new StreamReader(fileStream!); while (reader.Peek() >= 0) { fileContent.AppendLine(await reader.ReadLineAsync()); } } var result = new Dictionary<string, object>() { ["route"] = route, ["query"] = query, ["form"] = form, ["fileContent"] = fileContent.ToString() }; return result; }
本文來自博客園,作者:一事冇誠,轉載請注明原文鏈接:http://www.rzrgm.cn/ysmc/p/17968749

浙公網安備 33010602011771號