public class HttpClientHelper
{
private static readonly HttpClient HttpClient;
static HttpClientHelper()
{
HttpClient = new HttpClient();
}
/// <summary>
/// Get 一个请求
/// </summary>
/// <param name="requestUri">请求URL</param>
/// <returns></returns>
public static string Get(string requestUri)
{
var response = HttpClient.GetAsync(requestUri);
return response.Result.Content.ReadAsStringAsync().Result;
}
/// <summary>
/// Get 一个请求
/// </summary>
/// <param name="requestUri">请求URL</param>
/// <param name="urlDictionary">请求参数</param>
/// <returns></returns>
public static string Get(string requestUri, Dictionary<string, string> urlDictionary)
{
var paramter = urlDictionary.Aggregate(string.Empty, (current, item) => current + (item.Key + "=" + item.Value + "&"));
var response = HttpClient.GetAsync(requestUri + "?" + paramter.TrimEnd('&'));
return response.Result.Content.ReadAsStringAsync().Result;
}
/// <summary>
/// 异步 Get
/// </summary>
/// <param name="requestUri">请求URL</param>
/// <returns></returns>
public static async Task<string> GetAsync(string requestUri)
{
var response = await HttpClient.GetAsync(requestUri);
return await response.Content.ReadAsStringAsync();
}
/// <summary>
/// Get 一个请求
/// </summary>
/// <param name="requestUri">请求URL</param>
/// <param name="urlDictionary">请求参数</param>
/// <returns></returns>
public static async Task<string> GetAsync(string requestUri, Dictionary<string, string> urlDictionary)
{
var paramter = urlDictionary.Aggregate(string.Empty, (current, item) => current + (item.Key + "=" + item.Value + "&"));
var response = await HttpClient.GetAsync(requestUri + "?" + paramter.TrimEnd('&'));
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
return await response.Content.ReadAsStringAsync();
}
return null;
}
/// <summary>
/// Post 一个请求
/// </summary>
/// <param name="requestUri">请求URL</param>
/// <param name="urlDictionary">请求参数</param>
/// <returns></returns>
public static string Post(string requestUri, Dictionary<string, string> urlDictionary)
{
var paramter = new FormUrlEncodedContent(urlDictionary);
var response = HttpClient.PostAsync(requestUri, paramter);
return response.Result.Content.ReadAsStringAsync().Result;
}
/// <summary>
/// 异步Post 一个请求
/// </summary>
/// <param name="requestUri">请求URL</param>
/// <param name="urlDictionary">请求参数</param>
/// <returns></returns>
public static async Task<string> PostAsync(string requestUri, Dictionary<string, string> urlDictionary)
{
var paramter = new FormUrlEncodedContent(urlDictionary);
var response = await HttpClient.PostAsync(requestUri, paramter);
return await response.Content.ReadAsStringAsync();
}
}