HTTP请求 - C#

hmister
2023-01-08 / 0 评论 / 185 阅读 / 正在检测是否收录...

前情提要

 使用过的一些HTTP请求代码,做个笔记

GET请求

/// <summary>
/// Get请求
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static string GetFunction(string url)
{
  string serviceAddress = url;
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);
  request.Method = "GET";
  request.ContentType = "text/html;charset=UTF-8";
  HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  Stream myResponseStream = response.GetResponseStream();
  StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
  string retString = myStreamReader.ReadToEnd();
  myStreamReader.Close();
  myResponseStream.Close();
  return retString;
}

POST请求

1、第一种(string类型参数)

public static string _Post(string url,string str)
{
  string result = "";
  HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  req.Method = "POST";
  req.ContentType = "application/x-www-form-urlencoded";
  byte[] data = Encoding.UTF8.GetBytes(str);//把字符串转换为字节
  req.ContentLength = data.Length; //请求长度
  using (Stream reqStream = req.GetRequestStream()) //获取
  {
    reqStream.Write(data, 0, data.Length);//向当前流中写入字节
    reqStream.Close(); //关闭当前流
  }
  HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); //响应结果
  Stream stream = resp.GetResponseStream();
  //获取响应内容
  using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  {
    result = reader.ReadToEnd();
  }
  return result;
}

2、第二种(Dictionary类型参数)

/// <summary>
/// post请求
/// </summary>
/// <param name="url"></param>
/// <param name="dic"></param>
/// <returns></returns>
public static string Post(string url, Dictionary<string, string> dic)
  {
    string result = "";
    //添加Post 参数
    System.Text.StringBuilder builder = new System.Text.StringBuilder();
    int i = 0;
    foreach (var item in dic)
    {
      if (i > 0)
        builder.Append("&");
      builder.AppendFormat("{0}={1}", item.Key, item.Value);
      i++;
    }
    byte[] postData = System.Text.Encoding.UTF8.GetBytes(builder.ToString());
    System.Net.HttpWebRequest _webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
    _webRequest.Method = "POST";
    //_webRequest.ContentType = "application/json";
    //内容类型  
    _webRequest.ContentType = "application/x-www-form-urlencoded";
    _webRequest.Timeout = 1000 * 30;
    _webRequest.ContentLength = postData.Length;
    using (System.IO.Stream reqStream = _webRequest.GetRequestStream())
    {
      reqStream.Write(postData, 0, postData.Length);
      reqStream.Close();
    }
    System.Net.HttpWebResponse resp = (System.Net.HttpWebResponse)_webRequest.GetResponse();
    System.IO.Stream stream = resp.GetResponseStream();
    //获取响应内容
    using (System.IO.StreamReader reader = new System.IO.StreamReader(stream, System.Text.Encoding.UTF8))
    {
      result = reader.ReadToEnd();
    }
    return result;
}

使用示例

//Get
GetFunction("https://blog.hmister.net/");
//Post第一种
_Post("https://blog.hmister.net/","aa=1&bb=2");
//Post第二种
var data = new Dictionary<string, string>();
data.Add("aa", 1);
data.Add("bb", 2);
Post("https://blog.hmister.net/",data);
0

评论 (0)

取消