• C# HttpClientHelper请求


    public class HttpClientHelper
          {
               /// <summary>
               /// get请求
               /// </summary>
               /// <param name="url"></param>
               /// <returns></returns>
               public static string GetResponse(string url)
               {
                  if (url.StartsWith("https"))
                      System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
     
                 HttpClient httpClient = new HttpClient();
                 httpClient.DefaultRequestHeaders.Accept.Add(
                   new MediaTypeWithQualityHeaderValue("application/json"));
                  HttpResponseMessage response = httpClient.GetAsync(url).Result;
     
                  if (response.IsSuccessStatusCode)
                 {
                     string result = response.Content.ReadAsStringAsync().Result;
                     return result;
                  }
                 return null;
             }
     
              public static T GetResponse<T>(string url)
                  where T : class,new()
              {
                  if (url.StartsWith("https"))
                      System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
     
                  HttpClient httpClient = new HttpClient();
                 httpClient.DefaultRequestHeaders.Accept.Add(
                     new MediaTypeWithQualityHeaderValue("application/json"));
                 HttpResponseMessage response = httpClient.GetAsync(url).Result;
     
                  T result = default(T);
     
                  if (response.IsSuccessStatusCode)
                 {
                      Task<string> t = response.Content.ReadAsStringAsync();
                      string s = t.Result;
     
                      result = JsonConvert.DeserializeObject<T>(s);
                  }
                  return result;
              }
     
              /// <summary>
              /// post请求
              /// </summary>
              /// <param name="url"></param>
              /// <param name="postData">post数据</param>
              /// <returns></returns>
              public static string PostResponse(string url, string postData)
              {
                  if (url.StartsWith("https"))
                      System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
     
                  HttpContent httpContent = new StringContent(postData);
                  httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                 HttpClient httpClient = new HttpClient();
     
                 HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
     
                  if (response.IsSuccessStatusCode)
                  {
                      string result = response.Content.ReadAsStringAsync().Result;
                      return result;
                 }
                  return null;
              }
     
              /// <summary>
              /// 发起post请求
              /// </summary>
             /// <typeparam name="T"></typeparam>
              /// <param name="url">url</param>
             /// <param name="postData">post数据</param>
              /// <returns></returns>
              public static T PostResponse<T>(string url, string postData)
                 where T : class,new()
              {
                  if (url.StartsWith("https"))
                     System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
     
                  HttpContent httpContent = new StringContent(postData);
                  httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                  HttpClient httpClient = new HttpClient();
     
                  T result = default(T);
     
                  HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
     
                  if (response.IsSuccessStatusCode)
                  {
                      Task<string> t = response.Content.ReadAsStringAsync();
                    string s = t.Result;
     
                    result = JsonConvert.DeserializeObject<T>(s);
                 }
               return result;
             }
    
             /// <summary>
             /// V3接口全部为Xml形式,故有此方法
            /// </summary>
             /// <typeparam name="T"></typeparam>
             /// <param name="url"></param>
             /// <param name="xmlString"></param>
             /// <returns></returns>
             public static T PostXmlResponse<T>(string url, string xmlString)
                 where T : class,new()
             {
                 if (url.StartsWith("https"))
                     System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    
                HttpContent httpContent = new StringContent(xmlString);
               httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                HttpClient httpClient = new HttpClient();
    
                 T result = default(T);
    
                 HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
    
                 if (response.IsSuccessStatusCode)
                 {
                     Task<string> t = response.Content.ReadAsStringAsync();
                     string s = t.Result;
    
                     result = XmlDeserialize<T>(s);
                 }
                 return result;
             }
    
             /// <summary>
            /// 反序列化Xml
            /// </summary>
             /// <typeparam name="T"></typeparam>
             /// <param name="xmlString"></param>
             /// <returns></returns>
             public static T XmlDeserialize<T>(string xmlString)
                 where T : class,new ()
             {
                 try
                 {
                    XmlSerializer ser = new XmlSerializer(typeof(T));
                     using (StringReader reader = new StringReader(xmlString))
                     {
                         return (T)ser.Deserialize(reader);
                     }
                 }
                 catch (Exception ex)
                 {
                     throw new Exception("XmlDeserialize发生异常:xmlString:" + xmlString + "异常信息:" + ex.Message);
              }
    
            }
         }
    

      

    转载地址:http://www.2cto.com/weixin/201501/367405.html
  • 相关阅读:
    清除浮动的四种方式
    简单的响应式-信息介绍
    Island Mentality
    六、排序-插入排序
    五、快速排序
    有关一些话
    有关学习态度
    无题
    四、链表的学习
    MySQ彻底删除与安装配置
  • 原文地址:https://www.cnblogs.com/louby/p/5563994.html
Copyright © 2020-2023  润新知