• .NET HttpClient扩展


        /// <summary>
        /// HttpClient扩展类
        /// </summary>
        public static class HttpClientExtensions
        {
            /// <summary>
            /// HttpClient请求封装
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <typeparam name="TResult"></typeparam>
            /// <param name="method"></param>
            /// <param name="url"></param>
            /// <param name="sendContent"></param>
            /// <returns></returns>
            public static async Task<ResultInfo<TResult>> RequestAsync<T, TResult>(this HttpClient client, HttpMethod method, string url, T sendContent = default(T))
            {
                HttpRequestMessage requestMessage = new HttpRequestMessage(method, url)
                {
                    Content = method == HttpMethod.Get ? null : new ObjectContent<T>(sendContent, new JsonMediaTypeFormatter())
                };
                var response = await client.SendAsync(requestMessage);
                if (response.IsSuccessStatusCode)
                {
                    var content = await response.Content.ReadAsAsync<TResult>();
    
                    return new ResultInfo<TResult>(true, "请求成功")
                    {
                        Data = content
                    };
                }
                else
                {
                    var error = await response.Content.ReadAsAsync<HttpError>();
    
                    return new ResultInfo<TResult>(false, error.Message);
                }
            }
        }
  • 相关阅读:
    排序二——交换排序
    桥接模式 Bridge
    外观模式Facade(解耦)
    装饰模式和代理模式的区别
    代理模式 proxy
    装饰器模式 Decorator
    适配器模式
    android launcher-启动过程
    ubuntu 编译openwrt
    Eclipse Memory Analyzer tool(MAT)
  • 原文地址:https://www.cnblogs.com/guokun/p/5843744.html
Copyright © 2020-2023  润新知