C# HttpClient的使用方法总结
C# HttpClient的使用方法总结,直接上代码:
using System; using System.IO; using System.Net.Http; namespace ConsoleApp1 { class Program { private static HttpClient client = new HttpClient(); static void Main(string[] args) { client.BaseAddress = new Uri("http://localhost:8000"); TestGet(); TestPostByFormData(); TestPostByJson(); TestDownloadFile(); TestUploadFile(); Console.ReadLine(); } /// <summary> /// Get请求 /// </summary> static async void TestGet() { var res = await client.GetAsync("/Test/GetPerson"); res.EnsureSuccessStatusCode(); var rst = await res.Content.ReadAsStringAsync(); Console.WriteLine(rst); } /// <summary> /// FormData形式的Post请求 /// </summary> static async void TestPostByFormData() { var content = new MultipartFormDataContent(); content.Add(new StringContent("张三"), "name"); var res = await client.PostAsync("/Test/UpdateName", content); res.EnsureSuccessStatusCode(); var rst = await res.Content.ReadAsStringAsync(); Console.WriteLine(rst); } /// <summary> /// Json形式的Post请求 /// </summary> static async void TestPostByJson() { var json = @"{ ""name"": ""李四"", ""mobileNumber"": ""13122233445"", ""address"": ""中山路"" }"; var content = new StringContent(json); content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); var res = await client.PostAsync("/Test/UpdatePerson", content); res.EnsureSuccessStatusCode(); var rst = await res.Content.ReadAsStringAsync(); Console.WriteLine(rst); } /// <summary> /// 下载文件 /// </summary> static async void TestDownloadFile() { var res = await client.GetAsync("/Test/DownloadFile"); res.EnsureSuccessStatusCode(); var bytes = await res.Content.ReadAsByteArrayAsync(); File.WriteAllBytes("D:\\test.jpg", bytes); } /// <summary> /// 上传文件 /// </summary> static async void TestUploadFile() { var filePath = "D:\\test.png"; var fileName = Path.GetFileName(filePath); var content = new MultipartFormDataContent(); var bytes = File.ReadAllBytes(filePath); content.Add(new ByteArrayContent(bytes), "file", fileName); var res = await client.PostAsync("/Test/UploadFile", content); res.EnsureSuccessStatusCode(); var rst = await res.Content.ReadAsStringAsync(); Console.WriteLine(rst); } } }