zoukankan      html  css  js  c++  java
  • WebApi帮助类

     public class HttpClientBase
        {
    
             /// <summary>
            /// HttpClient实现Post请求
            /// </summary>
    
            protected  async Task<object> dooPost(string url, Dictionary<string, string> dic)
            {
               
                //设置HttpClientHandler的AutomaticDecompression
                var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
                //创建HttpClient(注意传入HttpClientHandler)
                using (var http = new HttpClient(handler))
                {
                    //使用FormUrlEncodedContent做HttpContent
                    var content = new FormUrlEncodedContent(dic);
                    //await异步等待回应
                    var response = await http.PostAsync(url, content);
                    //确保HTTP成功状态值
                    response.EnsureSuccessStatusCode();
                   
                    //await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
                    string Result = await response.Content.ReadAsStringAsync();
    
                    var Item = JsonConvert.DeserializeObject(Result);
    
                    return Item;
                }
            }
    
    
          /// <summary>
          /// HttpClient实现Get请求
          /// </summary>
            protected  async Task<object> dooGet(string url)
          {
              
              //创建HttpClient(注意传入HttpClientHandler)
              var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
              string Result = "";
              using (var http = new HttpClient(handler))
              {
                  //await异步等待回应
                  var response = await http.GetAsync(url);
                  //确保HTTP成功状态值
                  response.EnsureSuccessStatusCode();
    
                  //await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
                  Result = await response.Content.ReadAsStringAsync();
    
                var Items=  JsonConvert.DeserializeObject(Result);
    
                return Items;
              }
          }
    
    
         /// <summary>
         /// HttpClient实现Put请求
         /// </summary>
            protected  async Task<object> dooPut(string url, Dictionary<string, string> dic)
         {
            
             //设置HttpClientHandler的AutomaticDecompression
             var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
               string Result="";
             //创建HttpClient(注意传入HttpClientHandler)
             using (var http = new HttpClient(handler))
             {
                 //使用FormUrlEncodedContent做HttpContent
                 var content = new FormUrlEncodedContent(dic);
                 //await异步等待回应
                 var response = await http.PutAsync(url, content);
                 //确保HTTP成功状态值
                 response.EnsureSuccessStatusCode();
                 //await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
                     JavaScriptSerializer Serializer = new JavaScriptSerializer();
                     var items = Serializer.DeserializeObject(Result);
                     return items;
             }
           
            
         }
    
    
            /// <summary>
            /// HttpClient实现Get请求
            /// </summary>
            /// <param name="url"></param>
            /// <returns></returns>
            protected  object doGet(string url)
           {
               HttpClient client = new HttpClient();
               client.BaseAddress = new Uri(url);
    
               client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                
               HttpResponseMessage response = client.GetAsync(url).Result;  // Blocking call(阻塞调用)! 
    
               var result = "";
    
               if (response.IsSuccessStatusCode)
               {
                   result = response.Content.ReadAsStringAsync().Result;
    
                  JavaScriptSerializer Serializer = new JavaScriptSerializer();
                  var items = Serializer.DeserializeObject(result);
                  return items;
               }
               return result;
           }
    
    
            /// <summary>
            /// HttpClient实现Post请求
            /// </summary>
            /// <param name="url"></param>
            /// <returns></returns>
            protected  object doPost(string url, Dictionary<string, string> dic,ref string  StatusCode)
           {
             
               HttpClient client = new HttpClient();
               client.BaseAddress = new Uri(url);
    
              
               JavaScriptSerializer jss = new JavaScriptSerializer();
               
               var content = new FormUrlEncodedContent(dic);
               client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
               HttpResponseMessage response = client.PostAsync(url, content).Result;
               var result = "";
               if (response.IsSuccessStatusCode)
               {
                   result = response.Content.ReadAsStringAsync().Result;
    
                   JavaScriptSerializer Serializer = new JavaScriptSerializer();
                   var items = Serializer.DeserializeObject(result);
                   //Dictionary<string, object> jarry = (Dictionary<string, object>)items;
                   //obj ss = jarry["IsSuccess"];
                   //string sate = jarry[0]["IsSuccess"].ToString();
                   return items;
               }else
               {
                   StatusCode = response.StatusCode.ToString(); ;
               }
               return result;
           }
    
            /// <summary>
            /// 转换URL
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public  static  string UrlEncode(string str)
           {
               StringBuilder sb = new StringBuilder();
               byte[] byStr = System.Text.Encoding.UTF8.GetBytes(str);
               for (int i = 0; i < byStr.Length; i++)
               {
                   sb.Append(@"%" + Convert.ToString(byStr[i], 16));
               }
               return (sb.ToString());
           }
        }
    
  • 相关阅读:
    批量启动application pool
    sql server文件另存为的时候,选择文件编码和换行
    insert into 和 where not exists
    tcp slowstart (TCP 慢启动)
    如何在CentOS7上改变网络接口名
    Window系统命令行调用控制面板程序
    Using Let’s Encrypt for free SSL Certs with Netscaler
    端口相关知识学习笔记
    win7下KiWi Syslog服务器的安装与配置
    MPS添加管理设备实例NS的过程
  • 原文地址:https://www.cnblogs.com/sunliyuan/p/6825558.html
Copyright © 2011-2022 走看看