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方式请求的更多相关文章

  1. C# HttpWebRequest GET HTTP HTTPS 请求

    下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需要获取认证信息(如Cookie),所以返回的是HttpWebResponse ...

  2. 使用 HttpWebRequest 发送模拟 POST 请求

    使用HttpWebRequest发送模拟POST请求  网页中,如果form的method="POST",这时点击submit按钮可以给服务器发送了一个POST请求,如果metho ...

  3. 【转】C# HttpWebRequest提交数据方式

    [转]C# HttpWebRequest提交数据方式 HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择.它们支持一系列有用的属性.这两个类位 于Sy ...

  4. IIS请求筛选模块被配置为拒绝超过请求内容长度的请求

    HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大 ...

  5. android 之HttpURLConnection的post,get方式请求数据

    get方式和post方式的区别: 1.请求的URL地址不同: post:"http://xx:8081//servlet/LoginServlet" get:http://xxx: ...

  6. HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求

    http://www.cnblogs.com/JKqingxinfeng/archive/2012/10/29/2744663.html HTTP错误404.13 - Not Found 请求筛选模块 ...

  7. Ajax详解及其案例分析------如何获得Ajax对象,使用Ajax对象发送GET和POST请求,校验用户名,POST和GET请求时的乱码处理,实现级联的下拉列表

    本节主要内容预览: 1 获得Ajax对象 2 使用Ajax对象发送GET请求 3 使用Ajax对象发送POST请求 4 使用Ajax校验用户名 5 POST请求时的乱码处理 6 GET请求时的乱码处理 ...

  8. C# HttpWebRequest提交数据方式浅析

    C# HttpWebRequest提交数据方式学习之前我们先来看看什么是HttpWebRequest,它是 .net 基类库中的一个类,在命名空间 System.Net 下面,用来使用户通过HTTP协 ...

  9. JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求

    JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得那个毕竟是别人写 ...

随机推荐

  1. JavaIO流文件的操作总结

    IO流的分类 1.根据数据的流向: 输入流:用来读数据,如从外界设备读数据到内存中: 输出流:用来写数据,如从内存输出数据到外界存储设备: 2.根据数据流的格式: 字节流:一般用于声音或者秃瓢等二进制 ...

  2. elasticsearch和hadoop集成,gateway.type hdfs设置

    配置elasticsearch的存储路径为hdfs需要两步,安装插件 elasticsearch-hadoop,在联网的情况下在命令窗口运行:plugin -install elasticsearch ...

  3. Edge Linking

    因为噪声的存在, 检测出来的edge points有很多都是不相邻的. 所以边缘检测算法通常都有最后的连接步骤: 将属于同一edge的不相邻点连接起来(TODO, 是用一条路径将它们连通, 把路径中的 ...

  4. java基础语法要点<二>(基于1.8)

    注解(元数据) 从jdk5 开始,java支持在源文件中嵌入补充信息,称为注释(annotation).注释不会改变程序的动作,也就不会改变程序的语义.但在开发和部署期间,各种工具可以使用这类信息.元 ...

  5. js json 对象相互转换

    字符串转对象(strJSON代表json字符串)   var obj = eval(strJSON);   var obj = strJSON.parseJSON();   var obj = JSO ...

  6. ASP.NET MVC html help

    public static class HtmlHelper { /// <summary> /// 返回没有边框的只读的TextBox标签 /// </summary> // ...

  7. PHP获取MySql新增记录ID值的方法

    今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法 ...

  8. css-子div设置margin-top后,父div与子div一起下移

    根据海玉的博客 这个问题发生的原因是根据规范,一个盒子如果没有上补白(padding-top)和上边框(border-top),那么这个盒子的上边距会和其内部文档流中的第一个子元素的上边距重叠. 再说 ...

  9. 操作系统中的IPC机制

    按发送路径来看,可分为直接通信和间接通信. 1. 直接通信 (1)进程必须正确的命名对方 send (P, message) – 发送信息到进程P receive(Q, message) – 从进程 ...

  10. bzoj2219: 数论之神

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...