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

1.不带参数发送Post请求

  1. /// <summary>
  2. /// 指定Post地址使用Get 方式获取全部字符串
  3. /// </summary>
  4. /// <param name="url">请求后台地址</param>
  5. /// <returns></returns>
  6. public static string Post(string url)
  7. {
  8. string result = "";
  9. HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  10. req.Method = "POST";
  11. HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
  12. Stream stream = resp.GetResponseStream();
  13. //获取内容
  14. using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  15. {
  16. result = reader.ReadToEnd();
  17. }
  18. return result;
  19. }

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

  1. /// <summary>
  2. /// 指定Post地址使用Get 方式获取全部字符串
  3. /// </summary>
  4. /// <param name="url">请求后台地址</param>
  5. /// <returns></returns>
  6. public static string Post(string url,Dictionary<string,string> dic)
  7. {
  8. string result = "";
  9. HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  10. req.Method = "POST";
  11. req.ContentType = "application/x-www-form-urlencoded";
  12. #region 添加Post 参数
  13. StringBuilder builder = new StringBuilder();
  14. int i = 0;
  15. foreach (var item in dic)
  16. {
  17. if (i > 0)
  18. builder.Append("&");
  19. builder.AppendFormat("{0}={1}", item.Key, item.Value);
  20. i++;
  21. }
  22. byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
  23. req.ContentLength = data.Length;
  24. using (Stream reqStream = req.GetRequestStream())
  25. {
  26. reqStream.Write(data, 0, data.Length);
  27. reqStream.Close();
  28. }
  29. #endregion
  30. HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
  31. Stream stream = resp.GetResponseStream();
  32. //获取响应内容
  33. using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  34. {
  35. result = reader.ReadToEnd();
  36. }
  37. return result;
  38. }

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

  1. /// <summary>
  2. /// 指定Post地址使用Get 方式获取全部字符串
  3. /// </summary>
  4. /// <param name="url">请求后台地址</param>
  5. /// <param name="content">Post提交数据内容(utf-8编码的)</param>
  6. /// <returns></returns>
  7. public static string Post(string url, string content)
  8. {
  9. string result = "";
  10. HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  11. req.Method = "POST";
  12. req.ContentType = "application/x-www-form-urlencoded";
  13.  
  14. #region 添加Post 参数
  15. byte[] data = Encoding.UTF8.GetBytes(content);
  16. req.ContentLength = data.Length;
  17. using (Stream reqStream = req.GetRequestStream())
  18. {
  19. reqStream.Write(data, 0, data.Length);
  20. reqStream.Close();
  21. }
  22. #endregion
  23.  
  24. HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
  25. Stream stream = resp.GetResponseStream();
  26. //获取响应内容
  27. using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  28. {
  29. result = reader.ReadToEnd();
  30. }
  31. return result;
  32. }

转载方法:

  1. HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://fanyi.baidu.com/transcontent");
  2. Encoding encoding = Encoding.UTF8;
  3. string param = "ie=utf-8&source=txt&query=hello&t=1327829764203&token=8a7dcbacb3ed72cad9f3fb079809a127&from=auto&to=auto";
  4. //encoding.GetBytes(postData);
  5. byte[] bs = Encoding.ASCII.GetBytes(param);
  6. string responseData = String.Empty;
  7. req.Method = "POST";
  8. req.ContentType = "application/x-www-form-urlencoded";
  9. req.ContentLength = bs.Length;
  10. using (Stream reqStream = req.GetRequestStream())
  11. {
  12. reqStream.Write(bs, 0, bs.Length);
  13. reqStream.Close();
  14. }
  15. using (HttpWebResponse response = (HttpWebResponse)req.GetResponse())
  16. {
  17. using (StreamReader reader = new StreamReader(response.GetResponseStream(),encoding))
  18. {
  19. responseData = reader.ReadToEnd().ToString();
  20. }
  21. context.Response.Write(responseData);
  22. }

C# 发送Post请求(带参数)的更多相关文章

  1. httpclient post请求带参数返回数据乱码问题解决

    客户端代码: //带参数的post请求 @Test public void doPostWithParam() throws Exception { CloseableHttpClient httpC ...

  2. Java后端发出post请求带参数并接收返回的json

    核心代码: 参数格式: “key1=value1&key2=value2” /*** sendUrl    (远程请求的URL)* param    (远程请求参数)* JSONObject  ...

  3. Java发送POST请求,参数为JSON格式,并接收返回JSON数据

    原文地址:https://blog.csdn.net/qq_26975307/article/details/82713725 /** * 发送post请求 * @param url 路径 * @pa ...

  4. angularjs发送delete请求传参数的方法

    angularjs使用$http.delete()发送请求,默认是没法通过变量来传参数

  5. 服务端无法获取到Ajax发送post请求的参数

    js类似于这样: function send() { var xhr = new XMLHttpRequest(); xhr.open("post", "AjaxTest ...

  6. perl post 请求带参数

    my $url='https://wenjinbao.winfae.com/business/dispatch_post.do?action=submitAdminLogin';    my $res ...

  7. Postman发送GET请求带中文

    当使用Postman进行GET请求,并且请求参数里携带中文得时候,会请求失败 这时,需要对GET请求参数携带的中文进行编码即可请求成功

  8. java get请求带参数报错 java.io.IOException: Server returned HTTP response code: 400 for URL

    解决方案 在使用JAVA发起http请求的时候,经常会遇到这个错误,我们copy请求地址在浏览器中运行的时候又是正常运行的,造成这个错误的原因主要是因为请求的URL中包含空格,这个时候我们要使用URL ...

  9. 在vue中使用axios发送post请求,参数方式

    由于后台接收的参数格式为FormData格式, 在axios中参数格式默认为, 在传参数前,将原先官方提供的格式 改为如下: axios({ url: '../../../room/listRoomP ...

  10. nodejs http post 请求带参数

    // We need this to build our post string var querystring = require('querystring'); var http = requir ...

随机推荐

  1. Ruby——报错总结

    前言 记录ruby的一些报错 错误 Could not find a valid gem 'pumagem' (>= 0) in any repository ERROR: Could not ...

  2. IDEA+Maven+Mybatis 巨坑:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.rao.mapper.UserMapper.findAll

    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.rao.mapper.User ...

  3. Numpy | 06 从已有的数组创建数组

    numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个. numpy.asarray(a ...

  4. type of的返回值有哪些

    typeof 10; // number typeof 'time'; //string typeof undefined; // undefined typeof null; // object t ...

  5. 分类模型的评价指标Fscore

    小书匠深度学习 分类方法常用的评估模型好坏的方法. 0.预设问题 假设我现在有一个二分类任务,是分析100封邮件是否是垃圾邮件,其中不是垃圾邮件有65封,是垃圾邮件有35封.模型最终给邮件的结论只有两 ...

  6. nginx之http反向代理多台服务器

    Nginx http 反向代理高级应用 是Nginx可以基于ngx_http_upstream_module模块提供服务器分组转发.权重分配.状态监测.调度算法等高级功能. http upstream ...

  7. 油猴ajaxhook

    // ==UserScript== // @name ajaxHook // @namespace http://tampermonkey.net/ // @version 0.1 // @descr ...

  8. 内存映射文件MappedByteBuffer和Buffer的Scattering与Gathering

    上一篇讲到的DirectByteBuffer继承自MappedByteBuffer 一.MappedByteBuffer MappedByteBuffer的定义: A direct byte buff ...

  9. 自动创建Kibana索引

    参考 https://www.cnblogs.com/dance-walter/p/10471950.html 参考 https://www.elastic.co/guide/en/kibana/cu ...

  10. 使用analyze命令统计信息

    ① 搜集和删除索引.表和簇的统计信息② 验证表.索引和簇的结构③ 鉴定表和簇和行迁移和行链接针对analyze的搜集和删除统计信息功能而言Oracle推荐使用DBMS_STATS包来代替analyze ...