using System; using System.Collections.Generic; using System.IO; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; namespace Common.Helper.Request { public class RequestHelper { /// /// get方法获取文件流 /// /// /// public static async Task GetFileStream(string url) { using var client = new HttpClient(); var msg = await client.GetAsync($"{url}"); if (!msg.IsSuccessStatusCode) return null; // create a new file to write to var contentStream = await msg.Content.ReadAsStreamAsync(); return contentStream; } /// /// get方法返回实体对象 /// /// /// /// public static async Task GetEntity(string url) { using var client = new HttpClient(); var msg = await client.GetAsync($"{url}"); if (!msg.IsSuccessStatusCode) return default; var content = await msg.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject(content); } /// /// get方法返回文本字符 /// /// /// public static async Task GetString(string url) { using var client = new HttpClient(); var msg = await client.GetAsync($"{url}"); if (!msg.IsSuccessStatusCode) return default; return await msg.Content.ReadAsStringAsync(); } /// /// post方法返回文件流 /// /// /// /// /// public static async Task PostFileStream(string url,T entity) { using var client = new HttpClient(); var msg = await client.PostAsync($"{url}", new StringContent(JsonConvert.SerializeObject(entity), Encoding.UTF8, "application/json")); if (!msg.IsSuccessStatusCode) return null; // create a new file to write to var contentStream = await msg.Content.ReadAsStreamAsync(); // get the actual content stream return contentStream; } /// /// post方法返回实体对象 /// /// /// /// /// /// public static async Task PostEntity(string url,T entity) { using var client = new HttpClient(); var msg = await client.PostAsync($"{url}", new StringContent(JsonConvert.SerializeObject(entity), Encoding.UTF8, "application/json")); if (!msg.IsSuccessStatusCode) return default; var content = await msg.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject(content); } public static async Task PostFormDataEntity(string url, FormUrlEncodedContent formUrl) { using var client = new HttpClient(); var msg = await client.PostAsync($"{url}", formUrl); if (!msg.IsSuccessStatusCode) return default; var content = await msg.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject(content); } /// /// post方法返回文本字符 /// /// /// /// /// public static async Task PostString(string url,T entity) { using var client = new HttpClient(); var msg = await client.PostAsync($"{url}", new StringContent(JsonConvert.SerializeObject(entity), Encoding.UTF8, "application/json")); if (!msg.IsSuccessStatusCode) return default; return await msg.Content.ReadAsStringAsync(); } } }