IHttpClientFactory调用接口
public class Monitor
{
/// <summary>
/// POST请求
/// </summary>
/// <param name="url"></param>
/// <param name="obj"></param>
/// <param name="contentType">application/xml、application/json、application/text、application/x-www-form-urlencoded</param>
/// <param name="charset"></param>
/// <returns></returns>
public string HttpPostAsync(string url, object obj, string contentType = "", string charset = "UTF-8")
{
string result = "";
var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();
IHttpClientFactory _httpClientFactory = serviceProvider.GetService<IHttpClientFactory>();
var _httpClient = _httpClientFactory.CreateClient("CTCCMonitor");
_httpClient.DefaultRequestHeaders.Accept.Clear();
_httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(contentType));
string content = JsonConvert.SerializeObject(obj);
var httpContent = new StringContent(content, Encoding.UTF8, contentType);
var response = _httpClient.PostAsync(url, httpContent).Result;
if (response.IsSuccessStatusCode)
{
Task<string> t = response.Content.ReadAsStringAsync();
if (t != null)
{
result = t.Result;
}
}
return result;
}
/// <summary>
/// GET请求
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public string HttpGetAsync(string url)
{
string result = "";
var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();
IHttpClientFactory _httpClientFactory = serviceProvider.GetService<IHttpClientFactory>();
var _httpClient = _httpClientFactory.CreateClient("CTCCMonitor");
var response = _httpClient.GetAsync(url).Result;
if (response.IsSuccessStatusCode)
{
Task<string> t = response.Content.ReadAsStringAsync();
if (t != null)
{
result = t.Result;
}
}
return result;
}
}
string url="";//接口地址
//Post请求
string postData = "method=" + method + "&user_id=" + user_id + "&passWord=" + passwordEnc + "&sign=" + sign;
apiResult = monitor.HttpPostAsync(url, postData, "application/x-www-form-urlencoded");
string requestUrl = url + "?method=" + method + "&user_id=" + user_id + "&passWord=" + passwordEnc + "&sign=" + sign;
apiResult = monitor.HttpGetAsync(requestUrl);
文章来自:https://www.cnblogs.com/nayilvyangguang/p/12186067.html