2025年3月17日 星期一 甲辰(龙)年 月十六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > .net

C# 发送Post请求(带参数)

时间:11-07来源:作者:点击数:42

此处内容传输都是用UTF-8编码

1.不带参数发送Post请求

  • /// <summary>
  • /// 指定Post地址使用Get 方式获取全部字符串
  • /// </summary>
  • /// <param name="url">请求后台地址</param>
  • /// <returns></returns>
  • public static string Post(string url)
  • {
  • string result = "";
  • HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  • req.Method = "POST";
  • HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
  • Stream stream = resp.GetResponseStream();
  • //获取内容
  • using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  • {
  • result = reader.ReadToEnd();
  • }
  • return result;
  • }

2.带参数Post请求,指定键值对

  • /// <summary>
  • /// 指定Post地址使用Get 方式获取全部字符串
  • /// </summary>
  • /// <param name="url">请求后台地址</param>
  • /// <returns></returns>
  • public static string Post(string url,Dictionary<string,string> dic)
  • {
  • string result = "";
  • HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  • req.Method = "POST";
  • req.ContentType = "application/x-www-form-urlencoded";
  • #region 添加Post 参数
  • StringBuilder builder = new StringBuilder();
  • int i = 0;
  • foreach (var item in dic)
  • {
  • if (i > 0)
  • builder.Append("&");
  • builder.AppendFormat("{0}={1}", item.Key, item.Value);
  • i++;
  • }
  • byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
  • req.ContentLength = data.Length;
  • using (Stream reqStream = req.GetRequestStream())
  • {
  • reqStream.Write(data, 0, data.Length);
  • reqStream.Close();
  • }
  • #endregion
  • HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
  • Stream stream = resp.GetResponseStream();
  • //获取响应内容
  • using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  • {
  • result = reader.ReadToEnd();
  • }
  • return result;
  • }

3.带参数的Post请求,指定发送字符串内容

  • /// <summary>
  • /// 指定Post地址使用Get 方式获取全部字符串
  • /// </summary>
  • /// <param name="url">请求后台地址</param>
  • /// <param name="content">Post提交数据内容(utf-8编码的)</param>
  • /// <returns></returns>
  • public static string Post(string url, string content)
  • {
  • string result = "";
  • HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  • req.Method = "POST";
  • req.ContentType = "application/x-www-form-urlencoded";
  • #region 添加Post 参数
  • byte[] data = Encoding.UTF8.GetBytes(content);
  • req.ContentLength = data.Length;
  • using (Stream reqStream = req.GetRequestStream())
  • {
  • reqStream.Write(data, 0, data.Length);
  • reqStream.Close();
  • }
  • #endregion
  • HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
  • Stream stream = resp.GetResponseStream();
  • //获取响应内容
  • using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  • {
  • result = reader.ReadToEnd();
  • }
  • return result;
  • }

转载方法:

  • HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://fanyi.baidu.com/transcontent");
  • Encoding encoding = Encoding.UTF8;
  • string param = "ie=utf-8&source=txt&query=hello&t=1327829764203&token=8a7dcbacb3ed72cad9f3fb079809a127&from=auto&to=auto";
  • //encoding.GetBytes(postData);
  • byte[] bs = Encoding.ASCII.GetBytes(param);
  • string responseData = String.Empty;
  • req.Method = "POST";
  • req.ContentType = "application/x-www-form-urlencoded";
  • req.ContentLength = bs.Length;
  • using (Stream reqStream = req.GetRequestStream())
  • {
  • reqStream.Write(bs, 0, bs.Length);
  • reqStream.Close();
  • }
  • using (HttpWebResponse response = (HttpWebResponse)req.GetResponse())
  • {
  • using (StreamReader reader = new StreamReader(response.GetResponseStream(),encoding))
  • {
  • responseData = reader.ReadToEnd().ToString();
  • }
  • context.Response.Write(responseData);
  • }
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门