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

  • 相关阅读:
    Jmeter 批量执行脚本之-----------Ant
    Linux之vi编辑器的使用
    Linux命令之-ps & kill
    Linux命令详解一:基础命令新建、删除、拷贝~~~
    Linux(Ubuntu)下安装jdk
    Lr-代理录制
    开通博客第一天
    找出列表中重复的元素及个数
    写一个密码校验程序,密码格式为含有大写、小写字母、数字,长度为8位
    创建数据,分页显示,输入要查看的页码,显示指定数据,每页显示10条数据
  • 原文地址:https://www.cnblogs.com/clj0102/p/9183918.html
Copyright © 2011-2022 走看看