码迷,mamicode.com
首页 > Web开发 > 详细

IHttpClientFactory调用接口

时间:2020-01-13 11:20:09      阅读:646      评论:0      收藏:0      [点我收藏+]

标签:actor   result   pass   ada   请求   tty   odi   get请求   efault   

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

  

IHttpClientFactory调用接口

标签:actor   result   pass   ada   请求   tty   odi   get请求   efault   

原文地址:https://www.cnblogs.com/nayilvyangguang/p/12186067.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!