Http请求之--C#的HttpWebRequest实现POST方式请求
1、添加头信息和请求方法。有两种方式添加
req = (HttpWebRequest)WebRequest.Create("http://zhidao.baidu.com/submit/ajax/");
req.Method = "POST";//请求方式是POST
req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
req.Headers.Add("Accept-Encoding", "gzip, deflate");
req.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0";
req.Headers.Add("Cache-Control", "no-cache");
req.Headers.Add("Pragma", "no-cache");
req.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
req.Referer = textBox1.Text.Trim();
req.Headers.Add("X-Requested-With", "XMLHttpRequest");//这是AJAX请求标志
req.KeepAlive = true;
req.ServicePoint.Expect100Continue = false;//不使用那种行为Continue 100行为,约束请求用的
一种是用Headers来添加,但是只能部分添加,另一种是HttpWebRequest固有属性,如req.KeepAlive等 ;至于到底选择哪种方式呢?有一个原则:能通过一个属性的就用属性,比如KeepAlive表示头部的Connection;UserAgent表示头部的UserAgent等;但是标头键值没有对应的属性时,再用Headers这个集合性质的属性进行添加,如Cache-Control
2、布置要POST的内容(如果是GET方式就不用了)
Stream s = req.GetRequestStream();//注意这里是引用,不是简单的赋值,最开始看到这个还以为是错误呢
string cm="100009";
string qid= textBox1.Text.Trim();
qid = qid.Substring(qid.IndexOf("question/")+9,19);
string title = "";
string answerfr = "";
string entry = "qb_submit";
string cite = "";
string rich = "1";
string utdata = "111,74,112,111,113,111,112,111,113,111,112,111,113,111,112,111,113,111,112,111,113,74,118,122,113,118,119,74,114,114,112,123,111,117,119,115,13848662019671";
string stoken = "4c05d1b485b73ff79dd7f7562ea079c8";
string co="具体我也不是太清楚,可以在网上查一下";
string strdata = "cm=" + cm + "&qid=" + qid + "&title=" + "&answerfr=" + "&entry=" + entry + "&cite=" + "&rich=" + rich +
"&utdata=" + System.Web.HttpUtility.UrlEncode(utdata) + "&co=" + HttpUtility.UrlEncode(co) + "&stoken=" + stoken;//部分内容使用的Url转码
byte[] bytes = Encoding.UTF8.GetBytes(strdata);
s.Write(bytes, 0, bytes.Length);//把请求内容写入到请求对象中,以字节的方式
3、发送请求;只用一个方法
Stream ret=req.GetResponse().GetResponseStream();//得到网络流
Http请求之--C#的HttpWebRequest实现POST方式请求的更多相关文章
- C# HttpWebRequest GET HTTP HTTPS 请求
下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需要获取认证信息(如Cookie),所以返回的是HttpWebResponse ...
- 使用 HttpWebRequest 发送模拟 POST 请求
使用HttpWebRequest发送模拟POST请求 网页中,如果form的method="POST",这时点击submit按钮可以给服务器发送了一个POST请求,如果metho ...
- 【转】C# HttpWebRequest提交数据方式
[转]C# HttpWebRequest提交数据方式 HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择.它们支持一系列有用的属性.这两个类位 于Sy ...
- IIS请求筛选模块被配置为拒绝超过请求内容长度的请求
HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大 ...
- android 之HttpURLConnection的post,get方式请求数据
get方式和post方式的区别: 1.请求的URL地址不同: post:"http://xx:8081//servlet/LoginServlet" get:http://xxx: ...
- HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求
http://www.cnblogs.com/JKqingxinfeng/archive/2012/10/29/2744663.html HTTP错误404.13 - Not Found 请求筛选模块 ...
- Ajax详解及其案例分析------如何获得Ajax对象,使用Ajax对象发送GET和POST请求,校验用户名,POST和GET请求时的乱码处理,实现级联的下拉列表
本节主要内容预览: 1 获得Ajax对象 2 使用Ajax对象发送GET请求 3 使用Ajax对象发送POST请求 4 使用Ajax校验用户名 5 POST请求时的乱码处理 6 GET请求时的乱码处理 ...
- C# HttpWebRequest提交数据方式浅析
C# HttpWebRequest提交数据方式学习之前我们先来看看什么是HttpWebRequest,它是 .net 基类库中的一个类,在命名空间 System.Net 下面,用来使用户通过HTTP协 ...
- JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求
JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得那个毕竟是别人写 ...
随机推荐
- extjs5 常用属性的说明
uses -- 被引用的类可以在该类之后才加载. requires -- 被引用的类必须在该类之前加载. alias : 相当于别名一样,可以起多个,可以通过xtype创建实例,我现在接触的有三种类型 ...
- LVS + Keepalived + Nginx安装及配置
1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...
- 【BZOJ 3049】【USACO2013 Jan】Island Travels BFS+状压DP
这是今天下午的互测题,只得了60多分 分析一下错因: $dis[i][j]$只记录了相邻的两个岛屿之间的距离,我一开始以为可以,后来$charge$提醒我有可能会出现来回走的情况,而状压转移就一次,无 ...
- java-Collections工具类使用
Collections工具类方法介绍 Collections.reverse(list);//list顺序反转
- Web前端性能优化教程03:添加Expires头
本文是Web前端性能优化系列文章中的第三篇,主要讲述添内容:加Expires头.完整教程可查看:Web前端性能优化 什么是Expires头? Expires存储的是一个用来控制缓存失效的日期.当浏览器 ...
- Python 从零学起(纯基础) 笔记 (二)
Day02 自学笔记 1. 对于Python,一切事物都是对象,对象基于类创建,对象具有的功能去类里找 name = ‘Young’ - 对象 Li1 = [11,22,33] ...
- MWeb
专业的 Markdown 写作支持 极简 UI.Dark Mode.漂亮的 Markdown 语法高亮.列表缩进优化,提供 5 种主题选择. 除了支持基本的 Markdown 语法外,还支持大量 Ma ...
- 轻量级Web API实现,带接口界面的Jayrock JsonRPC接口组件升级版
升级功能如下: 1.增加模块名称.输入参数.输出参数注释 2.增加Sign验证.输入数据解密.输出数据解密重写方法 3.增加集成Demo规范 4.增加模块分类.接口快速定位.接口调用说明.接口输入输出 ...
- MyCCL特征码定位原理学习
这段时间学习WEB方面的技术,遇到了木马免杀特征码定位的问题,这里做一下学习笔记. 这里对MyCCL的分块原理做一下探究 对指定文件生成10个切块 对指定的木马进行切块后,文件列表是这样的. 注意这里 ...
- C# 字符串处理
1.比较字符串 String 类提供了一系列的方法用于字符串的比较,如CompareTo 和 Equals方法等. ① CompareTo : 如果参数的值与此实例相等,则返回0:如果此实例大于参数 ...