zoukankan      html  css  js  c++  java
  • HttpClien Get&Post

        新公司上班第二周,开始进军.Net Core,这方面的东西比较新,所以已经封装好的东西比较少,比如HttpClien之类的开源类库,找了NuGet好久,没有找到,所以先写个简陋的来用着先。

    using System.Threading.Tasks;
    using System.Net.Http;
    using Newtonsoft.Json;
    using System.Net.Http.Headers;
    
        /// <summary>
        /// Http Method Helper
        /// </summary>
        public static class HttpHelper
        {
            private static HttpClient instance = null;
            public static HttpClient GetClient()
            {
                if (instance == null)
                    instance = new HttpClient();
                return instance;
            }
    
            /// <summary>
            /// Get Method
            /// </summary>
            public static async Task<T> Get<T>(string url)
            {
                try
                {
                    var client = GetClient();
                    var responseMsg = await client.GetAsync(url);
                    if (responseMsg.IsSuccessStatusCode)
                    {
                        string strJson = await responseMsg.Content.ReadAsStringAsync();
                        return JsonConvert.DeserializeObject<T>(strJson);
                    }
                    else
                    {
                        return default(T);
                    }
    
                }
                catch
                {
                    instance = new HttpClient();
                    return default(T);
                }
            }
    
            /// <summary>
            /// Post Method
            /// </summary>
            public static async Task<T> Post<T>(string url, dynamic para)
            {
                try
                {
                    if (para != null)
                    {
                        var requestJson = JsonConvert.SerializeObject(para);
                        HttpContent httpContent = new StringContent(requestJson);
                        httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                        var client = GetClient();
    
                        var responseJson = await client.PostAsync(url, httpContent).Result.Content.ReadAsStringAsync();
                        return JsonConvert.DeserializeObject<T>(responseJson);
                    }
                    return default(T);
                }
                catch
                {
                    instance = new HttpClient();
                    return default(T);
                }
            }
        }

     调用测试:

    //=======================================================
    //                  .----.
    //               _.'__    `.
    //           .--(^)(^^)---/#
    //         .' @          /###
    //         :         ,   #####
    //          `-..__.-' _.-###/
    //                `;_:    `"'
    //              .'"""""`.
    //             /,  ya ,\
    //            //向上吧!409  \
    //            `-._______.-'
    //            ___`. | .'___
    //           (______|______)
    //=======================================================
  • 相关阅读:
    Oracle查看正在执行的存储过程的sid---转
    使用WITH子句重用子查询
    oracle解决显示数据的层次问题--实现数据缩进
    oracle9i、10g、11g区别 --转
    oracle10g安装在裸设备上
    在Linux系统上面创建使用裸设备的数据库
    监控Oracle数据库的常用shell脚本-转
    sql server使用维护计划定时备份完整数据库、差异数据库
    使用Advanced Installer14.3 简单打包windows窗体应用程序
    SVG Path标签 A 参数
  • 原文地址:https://www.cnblogs.com/EminemJK/p/6930271.html
Copyright © 2011-2022 走看看