zoukankan      html  css  js  c++  java
  • HttpClientHelper.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Net;
    using System.Net.Http;
    using System.Threading.Tasks;
    using Newtonsoft.Json;
    using System.Xml.Serialization;
    using System.IO;

    namespace Common
    {
    public class HttpClientHelper
    {
    public static string GetResponse(string url)
    {
    if (url.StartsWith("https"))
    {
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    }

    var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.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"))
    {
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    }
    var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.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;

    }


    public static string PostResponse(string url, string postData)
    {
    if (url.StartsWith("https"))
    {
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    }

    HttpContent httpContent = new StringContent(postData);
    httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
    var httpClient = new HttpClient();

    HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
    if (response.IsSuccessStatusCode)
    {
    string result = response.Content.ReadAsStringAsync().Result;
    return result;
    }
    return null;
    }

    public static T PostResoponse<T>(string url, string postData) where T : class,new()
    {
    if (url.StartsWith("https"))
    {
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    }

    HttpContent httpContent = new StringContent(postData);
    httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
    var 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;
    }

    public static T PostXmlResponse<T>(string url, string xmlString) where T:class,new ()
    {
    if (url.StartsWith("https"))
    {
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    }

    HttpContent httpContent = new StringContent(xmlString);
    httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
    var 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;


    }


    public static T XmlDeserialize<T>(string xmlString) where T:class,new ()
    {
    try
    {
    var ser = new XmlSerializer(typeof(T));
    using(var reader=new StringReader(xmlString))
    {
    return (T)ser.Deserialize(reader);
    }
    }
    catch (Exception ex)
    {
    throw new Exception("XmlDeserialize发生异常:xmlString:" + xmlString + " 异常信息:" + ex.Message);
    }
    }
    }
    }

  • 相关阅读:
    设计阶段如何画用例视图(UseCase View)
    如何进行博客中的摘要设计
    浅析Microsoft .net PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息)<转>
    设计漂亮的样式表是一门艺术<轉>
    推荐几个Net开源项目
    使用Ajax和Jquery实现GridView的展开、合并
    36个引人注目JQuery导航菜单
    Nunit中如何进行事务性单元测试
    推荐Jquery 40个漂亮的导航菜单设计
    Highcharts:高交互性的javascript图表类库
  • 原文地址:https://www.cnblogs.com/clj0102/p/9183918.html
Copyright © 2011-2022 走看看