• cs端调用webApi


     1 public class Httphelper
     2     {
     3         public static string Post1(string url, string postString)
     4         {
     5             
     6             using (WebClient webClient = new WebClient())
     7             {
     8                 byte[] postData = Encoding.UTF8.GetBytes(postString);//编码,
     9                 webClient.Headers.Add("Content-Type", "application/json");//采取POST方式必须加的header,如果改为GET方式的话就去掉这句话即可  
    10                 byte[] responseData = webClient.UploadData(url, "POST", postData);//得到返回字符流  
    11                 string srcString = Encoding.UTF8.GetString(responseData);//解码  
    12                 return srcString;
    13             }
    14         }
    15 
    16         public static string Post(string url, string postData)
    17         {
    18             string result = "";
    19 
    20             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    21 
    22             req.Method = "POST";
    23 
    24            
    25 
    26             req.ContentType = "application/json";
    27 
    28             byte[] data = Encoding.UTF8.GetBytes(postData);
    29 
    30             req.ContentLength = data.Length;
    31             //req.Timeout = 30000;
    32             using (Stream reqStream = req.GetRequestStream())
    33             {
    34                 reqStream.Write(data, 0, data.Length);
    35 
    36                 reqStream.Close();
    37             }
    38 
    39             HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
    40 
    41             Stream stream = resp.GetResponseStream();
    42 
    43             //获取响应内容
    44             using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
    45             {
    46                 result = reader.ReadToEnd();
    47             }
    48            
    49             return result;
    50         }
    51     }

     HttpClient 调用

     1  /// <summary>
     2         /// post 同步
     3         /// </summary>
     4         /// <param name="url"></param>
     5         /// <param name="postString"></param>
     6         /// <returns></returns>
     7         public static string Post(string url, string postData)
     8         {
     9             try
    10             {
    11                 using (HttpClient _httpClient = new HttpClient())
    12                 {
    13                     StringContent httpClient = new StringContent(postData, Encoding.UTF8, "application/json");
    14                     var response = _httpClient.PostAsync(url, httpClient).Result;
    15                     string jsonstr = response.Content.ReadAsStringAsync().Result;
    16                     return jsonstr;
    17                 }
    18             }
    19             catch (Exception ex)
    20             {
    21                 _logger.LogError(string.Format("Api调用异常--url【{0}】,参数【{1}】", url, postData), ex);
    22                 return "";
    23             }
    24         }
    25         /// <summary>
    26         /// post 异步
    27         /// </summary>
    28         /// <param name="url"></param>
    29         /// <param name="postData"></param>
    30         /// <returns></returns>
    31         public static async void PostAsync(string url, string postData)
    32         {
    33             try
    34             {
    35                 using (HttpClient _httpClient = new HttpClient())
    36                 {
    37                     StringContent httpClient = new StringContent(postData, Encoding.UTF8, "application/json");
    38                     var response = await _httpClient.PostAsync(url, httpClient);
    39                     string jsonstr = await response.Content.ReadAsStringAsync();
    40                 }
    41             }
    42             catch (Exception ex)
    43             {
    44                 _logger.LogError(string.Format("Api调用异常--url【{0}】,参数【{1}】", url, postData), ex);
    45             }
    46         }
  • 相关阅读:
    web--webstorm的一些常用快捷键
    studio--常见设置
    并发之lock的condition接口
    并发之atomic实例
    并发之volatile底层原理
    并发之java.util.concurrent.atomic原子操作类包
    多线程之整体概括
    Sqlite之事务
    activity--生命周期总结
    网络之TCP握手总结
  • 原文地址:https://www.cnblogs.com/happygx/p/3862845.html
Copyright © 2020-2023  润新知