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  \
    //            `-._______.-'
    //            ___`. | .'___
    //           (______|______)
    //=======================================================
  • 相关阅读:
    重读金典------高质量C编程指南(林锐)-------第四章 表达式和基本语句
    重读金典------高质量C编程指南(林锐)-------第三章 命名规则
    重读金典------高质量C编程指南(林锐)-------第二章 程序的板式
    重读金典------高质量C编程指南(林锐)-------第一章 文件结构
    链表的基本操作---创建
    实现两个数的互换算法小结
    C++中引用与指针的区别
    以前写的一些小程序总结
    OPENCV中数字图像处理知识运用
    常见的论文查找办法
  • 原文地址:https://www.cnblogs.com/EminemJK/p/6930271.html
Copyright © 2011-2022 走看看