zoukankan      html  css  js  c++  java
  • C# HttpClient请求

      1 using Newtonsoft.Json;
      2 using System;
      3 using System.Collections.Generic;
      4 using System.IO;
      5 using System.Linq;
      6 using System.Net;
      7 using System.Net.Http;
      8 using System.Net.Http.Headers;
      9 using System.Text;
     10 using System.Threading.Tasks;
     11 using System.Xml.Serialization;
     12 
     13 namespace SXYC.Common
     14 {
     15     public class HttpClientHelpClass
     16     {
     17         /// <summary>
     18         /// get请求
     19         /// </summary>
     20         /// <param name="url"></param>
     21         /// <returns></returns>
     22         public static string GetResponse(string url, out string statusCode)
     23         {
     24             if (url.StartsWith("https"))
     25                 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
     26 
     27             var httpClient = new HttpClient();
     28             httpClient.DefaultRequestHeaders.Accept.Add(
     29               new MediaTypeWithQualityHeaderValue("application/json"));
     30             HttpResponseMessage response = httpClient.GetAsync(url).Result;
     31             statusCode = response.StatusCode.ToString();
     32             if (response.IsSuccessStatusCode)
     33             {
     34                 string result = response.Content.ReadAsStringAsync().Result;
     35                 return result;
     36             }
     37             return null;
     38         }
     39 
     40         public static string RestfulGet(string url)
     41         {
     42             HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
     43             // Get response
     44             using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
     45             {
     46                 // Get the response stream
     47                 StreamReader reader = new StreamReader(response.GetResponseStream());
     48                 // Console application output
     49                 return reader.ReadToEnd();
     50             }
     51         }
     52 
     53         public static T GetResponse<T>(string url)
     54            where T : class, new()
     55         {
     56             if (url.StartsWith("https"))
     57                 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
     58 
     59             var httpClient = new HttpClient();
     60             httpClient.DefaultRequestHeaders.Accept.Add(
     61                new MediaTypeWithQualityHeaderValue("application/json"));
     62             HttpResponseMessage response = httpClient.GetAsync(url).Result;
     63 
     64             T result = default(T);
     65 
     66             if (response.IsSuccessStatusCode)
     67             {
     68                 Task<string> t = response.Content.ReadAsStringAsync();
     69                 string s = t.Result;
     70 
     71                 result = JsonConvert.DeserializeObject<T>(s);
     72             }
     73             return result;
     74         }
     75 
     76         /// <summary>
     77         /// post请求
     78         /// </summary>
     79         /// <param name="url"></param>
     80         /// <param name="postData">post数据</param>
     81         /// <returns></returns>
     82         public static string PostResponse(string url, string postData, out string statusCode)
     83         {
     84             if (url.StartsWith("https"))
     85                 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
     86 
     87             HttpContent httpContent = new StringContent(postData);
     88             httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
     89             httpContent.Headers.ContentType.CharSet = "utf-8";
     90 
     91             HttpClient httpClient = new HttpClient();
     92             //httpClient..setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");
     93 
     94             HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
     95 
     96             statusCode = response.StatusCode.ToString();
     97             if (response.IsSuccessStatusCode)
     98             {
     99                 string result = response.Content.ReadAsStringAsync().Result;
    100                 return result;
    101             }
    102 
    103             return null;
    104         }
    105 
    106         /// <summary>
    107         /// 发起post请求
    108         /// </summary>
    109         /// <typeparam name="T"></typeparam>
    110         /// <param name="url">url</param>
    111         /// <param name="postData">post数据</param>
    112         /// <returns></returns>
    113         public static T PostResponse<T>(string url, string postData)
    114             where T : class, new()
    115         {
    116             if (url.StartsWith("https"))
    117                 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    118 
    119             HttpContent httpContent = new StringContent(postData);
    120             httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    121             HttpClient httpClient = new HttpClient();
    122 
    123             T result = default(T);
    124 
    125             HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
    126 
    127             if (response.IsSuccessStatusCode)
    128             {
    129                 Task<string> t = response.Content.ReadAsStringAsync();
    130                 string s = t.Result;
    131 
    132                 result = JsonConvert.DeserializeObject<T>(s);
    133             }
    134             return result;
    135         }
    136 
    137 
    138         /// <summary>
    139         /// 反序列化Xml
    140         /// </summary>
    141         /// <typeparam name="T"></typeparam>
    142         /// <param name="xmlString"></param>
    143         /// <returns></returns>
    144         public static T XmlDeserialize<T>(string xmlString)
    145             where T : class, new()
    146         {
    147             try
    148             {
    149                 XmlSerializer ser = new XmlSerializer(typeof(T));
    150                 using (StringReader reader = new StringReader(xmlString))
    151                 {
    152                     return (T)ser.Deserialize(reader);
    153                 }
    154             }
    155             catch (Exception ex)
    156             {
    157                 throw new Exception("XmlDeserialize发生异常:xmlString:" + xmlString + "异常信息:" + ex.Message);
    158             }
    159 
    160         }
    161 
    162         public static string PostResponse(string url, string postData, string token, string appId, string serviceURL, out string statusCode)
    163         {
    164             if (url.StartsWith("https"))
    165                 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    166 
    167             HttpContent httpContent = new StringContent(postData);
    168             httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    169             httpContent.Headers.ContentType.CharSet = "utf-8";
    170 
    171             httpContent.Headers.Add("token", token);
    172             httpContent.Headers.Add("appId", appId);
    173             httpContent.Headers.Add("serviceURL", serviceURL);
    174 
    175 
    176             HttpClient httpClient = new HttpClient();
    177             //httpClient..setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");
    178 
    179             HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
    180 
    181             statusCode = response.StatusCode.ToString();
    182             if (response.IsSuccessStatusCode)
    183             {
    184                 string result = response.Content.ReadAsStringAsync().Result;
    185                 return result;
    186             }
    187 
    188             return null;
    189         }
    190 
    191         /// <summary>
    192         /// 修改API
    193         /// </summary>
    194         /// <param name="url"></param>
    195         /// <param name="postData"></param>
    196         /// <returns></returns>
    197         public static string KongPatchResponse(string url, string postData)
    198         {
    199             var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    200             httpWebRequest.ContentType = "application/x-www-form-urlencoded";
    201             httpWebRequest.Method = "PATCH";
    202 
    203             byte[] btBodys = Encoding.UTF8.GetBytes(postData);
    204             httpWebRequest.ContentLength = btBodys.Length;
    205             httpWebRequest.GetRequestStream().Write(btBodys, 0, btBodys.Length);
    206 
    207             HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
    208             var streamReader = new StreamReader(httpWebResponse.GetResponseStream());
    209             string responseContent = streamReader.ReadToEnd();
    210 
    211             httpWebResponse.Close();
    212             streamReader.Close();
    213             httpWebRequest.Abort();
    214             httpWebResponse.Close();
    215 
    216             return responseContent;
    217         }
    218 
    219         /// <summary>
    220         /// 创建API
    221         /// </summary>
    222         /// <param name="url"></param>
    223         /// <param name="postData"></param>
    224         /// <returns></returns>
    225         public static string KongAddResponse(string url, string postData)
    226         {
    227             if (url.StartsWith("https"))
    228                 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    229             HttpContent httpContent = new StringContent(postData);
    230             httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded") { CharSet = "utf-8" };
    231             var httpClient = new HttpClient();
    232             HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
    233             if (response.IsSuccessStatusCode)
    234             {
    235                 string result = response.Content.ReadAsStringAsync().Result;
    236                 return result;
    237             }
    238             return null;
    239         }
    240 
    241         /// <summary>
    242         /// 删除API
    243         /// </summary>
    244         /// <param name="url"></param>
    245         /// <returns></returns>
    246         public static bool KongDeleteResponse(string url)
    247         {
    248             if (url.StartsWith("https"))
    249                 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    250 
    251             var httpClient = new HttpClient();
    252             HttpResponseMessage response = httpClient.DeleteAsync(url).Result;
    253             return response.IsSuccessStatusCode;
    254         }
    255 
    256         /// <summary>
    257         /// 修改或者更改API        
    258         /// </summary>
    259         /// <param name="url"></param>
    260         /// <param name="postData"></param>
    261         /// <returns></returns>
    262         public static string KongPutResponse(string url, string postData)
    263         {
    264             if (url.StartsWith("https"))
    265                 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    266 
    267             HttpContent httpContent = new StringContent(postData);
    268             httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded") { CharSet = "utf-8" };
    269 
    270             var httpClient = new HttpClient();
    271             HttpResponseMessage response = httpClient.PutAsync(url, httpContent).Result;
    272             if (response.IsSuccessStatusCode)
    273             {
    274                 string result = response.Content.ReadAsStringAsync().Result;
    275                 return result;
    276             }
    277             return null;
    278         }
    279 
    280         /// <summary>
    281         /// 检索API
    282         /// </summary>
    283         /// <param name="url"></param>
    284         /// <returns></returns>
    285         public static string KongSerchResponse(string url)
    286         {
    287             if (url.StartsWith("https"))
    288                 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
    289 
    290             var httpClient = new HttpClient();
    291             HttpResponseMessage response = httpClient.GetAsync(url).Result;
    292             if (response.IsSuccessStatusCode)
    293             {
    294                 string result = response.Content.ReadAsStringAsync().Result;
    295                 return result;
    296             }
    297             return null;
    298         }
    299     }
    300 }
  • 相关阅读:
    r语言 包说明
    python中的map()函数
    Java打印整数的二进制表示(代码与解析)
    python 两个字典合并
    判断一个字符串中是否含有中文字符:
    Python字符串的encode与decode研究心得——解决乱码问题
    javac编译成功,用java运行class文件出现“找不到或无法加载主类” 的问题
    python读取剪贴板报错 pywintypes.error: (1418, 'GetClipboardData', 'xcfxdfxb3xccxc3xbbxd3xd0xb4xf2xbfxaaxb5x
    python openpyxl 2.5.4 版本 excel常用操作封装
    pycharm 设置文件编码的位置:Editor-->File Encodings
  • 原文地址:https://www.cnblogs.com/louby/p/8021527.html
Copyright © 2011-2022 走看看