重庆小潘seo博客

当前位置:首页 > 重庆网络营销 > 小潘杂谈 >

小潘杂谈

C#微信开发之旅:基础类之HttpClientHelper(更新:SSL安全策略)

时间:2020-09-10 20:00:06 作者:重庆seo小潘 来源:
包含通过HttpClient发起get或post请求的方法,所有调用微信接口的操作都通过此类。话不多说,直接上代码: 2014-10-31代码更新:微信SSL安全策略调整,关闭掉SSLv2、SSLv3版本支持,不再支持部分使用SSLv2、 SSLv3或更低版本的客户端调用。public class Http

包含通过HttpClient发起get或post请求的方法,所有调用微信接口的操作都通过此类。话不多说,直接上代码:

2014-10-31代码更新:微信SSL安全策略调整,关闭掉SSLv2、SSLv3版本支持,不再支持部分使用SSLv2、 SSLv3或更低版本的客户端调用。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);}}}更多C#微信开发之旅:基础类之HttpClientHelper(更新:SSL安全策略)相关文章请关注PHP中文网!