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提交 觉得那个毕竟是别人写 ...
随机推荐
- Cross-Entropy Loss 与Accuracy的数值关系
以分类任务为例, 假设要将样本分为\(n\)个类别. 先考虑单个样本\((X, z)\). 将标题\(z\)转化为一个\(n\)维列向量\(y = (y_1, \dots y_k, \dots, y_ ...
- ivy,ivyde插件-eclipse
官方共享更新磁盘下载 http://www.apache.org/dist/ant/ivyde/updatesite/ http://ant.apache.org/ivy/download.cgi 简 ...
- Win7下如何设置护眼的电脑豆沙绿界面?保护眼睛的颜色设置教程
关爱心灵的窗户——眼睛! 随着科技发展,使用电脑的人越来越多,由于使用电脑时间过长,我们的眼睛也越发容易疲劳,干燥.如何才能使电脑对人眼的伤害减小到最 小. 小编建议大家可以把窗口背景色设置成护眼色. ...
- jquery datatable
<html><head></head> <script type="text/javascript"> $(document).re ...
- 【USACO 1.3】Wormholes
/* LANG: C++ TASK: wormhole n个洞,n<=12, 如果两洞配对,则它们之间有地下路径(无向) 牛在地上只会往+x方向 问多少种两两配对的方案,牛从地上某位置出发,会陷 ...
- 查找Linux系统中的占用磁盘空间
目录的来查看空间占用情况 du -sh /* 先看看根目录下面 让文件夹下的文件让文件按大小排序 方法一:# ls -lhSl 长格式显示,h human readable模式,大小单位为M,G等易读 ...
- Linux基础3(用户/组管理,rpm,yum,源码安装软件)
用户管理 与用户相关的配置文件 /etc/passwd /etc/shadow /etc/skel /etc/defalut/useradd /etc/login.defs useradd userm ...
- 2.python算法之回形矩阵
代码: #!/usr/bin/env python # encoding: utf-8 """ @author: 侠之大者kamil @file: 2.回形矩阵.py @ ...
- ORA-01157错误,丢失undo tablespace中数据文件的解决方法
我们先来看一下这个现象: [oracle@djp ora12]$ pwd /u01/app/oracle/oradata/ora12 [oracle@djp ora12]$ mv undotbs01. ...
- 【BZOJ-1568】Blue Mary开公司 李超线段树 (标记永久化)
1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 557 Solved: 192[Submit ...