C# 发送Post请求(带参数)
此处内容传输都是用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);
- }
C# 发送Post请求(带参数)的更多相关文章
- httpclient post请求带参数返回数据乱码问题解决
客户端代码: //带参数的post请求 @Test public void doPostWithParam() throws Exception { CloseableHttpClient httpC ...
- Java后端发出post请求带参数并接收返回的json
核心代码: 参数格式: “key1=value1&key2=value2” /*** sendUrl (远程请求的URL)* param (远程请求参数)* JSONObject ...
- Java发送POST请求,参数为JSON格式,并接收返回JSON数据
原文地址:https://blog.csdn.net/qq_26975307/article/details/82713725 /** * 发送post请求 * @param url 路径 * @pa ...
- angularjs发送delete请求传参数的方法
angularjs使用$http.delete()发送请求,默认是没法通过变量来传参数
- 服务端无法获取到Ajax发送post请求的参数
js类似于这样: function send() { var xhr = new XMLHttpRequest(); xhr.open("post", "AjaxTest ...
- perl post 请求带参数
my $url='https://wenjinbao.winfae.com/business/dispatch_post.do?action=submitAdminLogin'; my $res ...
- Postman发送GET请求带中文
当使用Postman进行GET请求,并且请求参数里携带中文得时候,会请求失败 这时,需要对GET请求参数携带的中文进行编码即可请求成功
- java get请求带参数报错 java.io.IOException: Server returned HTTP response code: 400 for URL
解决方案 在使用JAVA发起http请求的时候,经常会遇到这个错误,我们copy请求地址在浏览器中运行的时候又是正常运行的,造成这个错误的原因主要是因为请求的URL中包含空格,这个时候我们要使用URL ...
- 在vue中使用axios发送post请求,参数方式
由于后台接收的参数格式为FormData格式, 在axios中参数格式默认为, 在传参数前,将原先官方提供的格式 改为如下: axios({ url: '../../../room/listRoomP ...
- nodejs http post 请求带参数
// We need this to build our post string var querystring = require('querystring'); var http = requir ...
随机推荐
- Ruby——报错总结
前言 记录ruby的一些报错 错误 Could not find a valid gem 'pumagem' (>= 0) in any repository ERROR: Could not ...
- 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 ...
- Numpy | 06 从已有的数组创建数组
numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个. numpy.asarray(a ...
- type of的返回值有哪些
typeof 10; // number typeof 'time'; //string typeof undefined; // undefined typeof null; // object t ...
- 分类模型的评价指标Fscore
小书匠深度学习 分类方法常用的评估模型好坏的方法. 0.预设问题 假设我现在有一个二分类任务,是分析100封邮件是否是垃圾邮件,其中不是垃圾邮件有65封,是垃圾邮件有35封.模型最终给邮件的结论只有两 ...
- nginx之http反向代理多台服务器
Nginx http 反向代理高级应用 是Nginx可以基于ngx_http_upstream_module模块提供服务器分组转发.权重分配.状态监测.调度算法等高级功能. http upstream ...
- 油猴ajaxhook
// ==UserScript== // @name ajaxHook // @namespace http://tampermonkey.net/ // @version 0.1 // @descr ...
- 内存映射文件MappedByteBuffer和Buffer的Scattering与Gathering
上一篇讲到的DirectByteBuffer继承自MappedByteBuffer 一.MappedByteBuffer MappedByteBuffer的定义: A direct byte buff ...
- 自动创建Kibana索引
参考 https://www.cnblogs.com/dance-walter/p/10471950.html 参考 https://www.elastic.co/guide/en/kibana/cu ...
- 使用analyze命令统计信息
① 搜集和删除索引.表和簇的统计信息② 验证表.索引和簇的结构③ 鉴定表和簇和行迁移和行链接针对analyze的搜集和删除统计信息功能而言Oracle推荐使用DBMS_STATS包来代替analyze ...