zoukankan      html  css  js  c++  java
  • HttpClient调用api

    /// <summary>
            /// 模拟调用API
            /// </summary>
            /// <param requestUrl="">请求地址</param>
            /// <param paramsBody="">调用参数</param>
            /// <returns></returns>
            public static string CallApi(string callUrl, string callBody, string callType = "POST")
            {
                if (string.IsNullOrEmpty(callUrl))
                {
                    return "";
                }
                Stopwatch sw = new Stopwatch();
                sw.Start();
                HttpClient httpClient = null;
                try
                {
                    httpClient = new HttpClient() { BaseAddress = new Uri("http://" + callUrl) };
                    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    var httpMessage = new HttpRequestMessage();
                    if (HttpMethod.Get.Method.Equals(callType, StringComparison.OrdinalIgnoreCase))
                    {
                        httpMessage.Method = HttpMethod.Get;
                        var uri = string.Format("{0}?{1}", httpClient.BaseAddress, callBody);
                        httpMessage.RequestUri = new Uri(uri);
                    }
                    else
                    {
                        httpMessage.Method = HttpMethod.Post;
                        httpMessage.Content = BuildPostParamsForCallApi(callBody);
                    }
                    var requestResult = httpClient.SendAsync(httpMessage).Result;
                    var resultBody = requestResult.Content.ReadAsStringAsync().Result;
    
                    sw.Stop();
    
                    return resultBody;
    
                }
                catch
                {
                    return "";
                }
                finally
                {
                    if (httpClient != null)
                    {
                        httpClient.Dispose();
                    }
                }
            }
    private static StringContent BuildPostParamsForCallApi(string paramsBody)
            {
                var content = new StringContent(paramsBody);
    
                //content.Headers.Clear();
                content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
                return content;
            }
  • 相关阅读:
    Storm分布式实时流计算框架相关技术总结
    上手开源项目的几点建议【转】
    笔试面试的路上——努力ing
    Storm配置项详解【转】
    storm UI
    leetcode-单词探索
    leetcode-全排列详解(回溯算法)
    leetcode-生成括号(回溯算法)
    leetcode-递增的三元子序列
    leetcode-最长无重复字符的子串
  • 原文地址:https://www.cnblogs.com/xuguanghui/p/6991326.html
Copyright © 2011-2022 走看看