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);
    }
    }
    }
    }

  • 相关阅读:
    一个经典的页面布局
    巧避new的一个原型设计模式
    讲解关于javascript的继承
    根据指定日期 算出该周的一周日期
    原型实现的一个观察者模式
    减少类之间的耦合性
    Android 代码下载
    (转)open gl 实例 demo vs2005 环境
    Tile editor 快捷键
    这是第一篇博客~
  • 原文地址:https://www.cnblogs.com/clj0102/p/9183918.html
Copyright © 2011-2022 走看看