• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#HttpClientHelper请求

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
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

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【C#】获取机器码MachineCode发布时间:2022-07-18
下一篇:
C#实现JAVAAES加密解密[原创]发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap