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();
}
}
}