在c#中使用HttpWebRequest时的几种提交数据方式学习和分析
2010-08-05 15:55
1036 查看
C# HttpWebRequest提交数据方式学习之前我们先来看看什么是HttpWebRequest,它是 .net 基类库中的一个类,在命名空间 System.Net 下面,用来使用户通过HTTP协议和服务器交互。
C# HttpWebRequest提交数据方式学习之前我们先来看看什么是HttpWebRequest,它是 .net 基类库中的一个类,在命名空间 System.Net 下面,用来使用户通过HTTP协议和服务器交互。
C# HttpWebRequest的作用:
HttpWebRequest对HTTP协议进行了完整的封装,对HTTP协议中的 Header, Content, Cookie 都做了属性和方法的支持,很容易就能编写出一个模拟浏览器自动登录的程序。
C# HttpWebRequest提交数据方式:
程序使用HTTP协议和服务器交互主要是进行数据的提交,通常数据的提交是通过 GET 和 POST 两种方式来完成,下面对这两种方式进行一下说明:
C# HttpWebRequest提交数据方式1. GET 方式。
GET 方式通过在网络地址附加参数来完成数据的提交,比如在地址http://www.google.com/webhp?hl=zh-CN 中,前面部分 http://www.google.com/webhp 表示数据提交的网址,后面部分 hl=zh-CN 表示附加的参数,其中 hl 表示一个键(key), zh-CN 表示这个键对应的值(value)。程序代码如下:
以下是代码片段: HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "http://www.google.com/webhp?hl=zh-CN" ); req.Method = "GET"; using (WebResponse wr = req.GetResponse()) { //在这里对接收到的页面内容进行处理 } |
POST 方式通过在页面内容中填写参数的方法来完成数据的提交,参数的格式和 GET 方式一样,是类似于 hl=zh-CN&newwindow=1 这样的结构。程序代码如下:
以下是代码片段: string param = "hl=zh-CN&newwindow=1"; byte[] bs = Encoding.ASCII.GetBytes(param); HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "http://www.google.com/intl/zh-CN/" ); 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); } using (WebResponse wr = req.GetResponse()) { //在这里对接收到的页面内容进行处理 } |
C# HttpWebRequest提交数据方式3. 使用 GET 方式提交中文数据。
GET 方式通过在网络地址中附加参数来完成数据提交,对于中文的编码,常用的有 gb2312 和 utf8 两种,用 gb2312 方式编码访问的程序代码如下:
以下是代码片段: Encoding myEncoding = Encoding.GetEncoding("gb2312"); string address = "http://www.baidu.com/s?" + HttpUtility.UrlEncode("参数一", myEncoding) + "=" + HttpUtility.UrlEncode("值一", myEncoding); HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(address); req.Method = "GET"; using (WebResponse wr = req.GetResponse()) { //在这里对接收到的页面内容进行处理 } |
C# HttpWebRequest提交数据方式4. 使用 POST 方式提交中文数据。
POST 方式通过在页面内容中填写参数的方法来完成数据的提交,由于提交的参数中可以说明使用的编码方式,所以理论上能获得更大的兼容性。用 gb2312 方式编码访问的程序代码如下:
以下是代码片段: Encoding myEncoding = Encoding.GetEncoding("gb2312"); string param = HttpUtility.UrlEncode("参数一", myEncoding) + "=" + HttpUtility.UrlEncode("值一", myEncoding) + "&" + HttpUtility.UrlEncode("参数二", myEncoding) + "=" + HttpUtility.UrlEncode("值二", myEncoding); byte[] postBytes = Encoding.ASCII.GetBytes(param); HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "http://www.baidu.com/s" ); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded;charset=gb2312"; req.ContentLength = postBytes.Length; using (Stream reqStream = req.GetRequestStream()) { reqStream.Write(bs, 0, bs.Length); } using (WebResponse wr = req.GetResponse()) { //在这里对接收到的页面内容进行处理 } |
以上列出了客户端程序使用HTTP协议与服务器交互的情况,常用的是 GET 和 POST 方式。现在流行的 WebService 也是通过 HTTP 协议来交互的,使用的是 POST 方法。与以上稍有所不同的是, WebService 提交的数据内容和接收到的数据内容都是使用了 XML 方式编码。所以, HttpWebRequest 也可以使用在调用 WebService 的情况下。
C# HttpWebRequest提交数据方式的基本内容就向你介绍到这里,希望对你了解和学习C# HttpWebRequest提交数据方式有所帮助。
相关文章推荐
- 在c#中使用HttpWebRequest时的几种提交数据方式学习和分析
- C# HttpWebRequest提交数据方式浅析
- C# HttpWebRequest提交数据方式浅析
- C# 使用HttpWebRequest用Post提交MultiPart数据
- C# 使用HttpWebRequest Post提交数据,携带Cookie和相关参数示例
- 20110215 学习记录2:表单中的get和post区别 & 使用 HttpWebRequest 向网站提交数据
- C# 使用HttpWebRequest用Post提交MultiPart数据
- C# HttpWebRequest提交数据方式浅析
- C# HttpWebRequest 方式提交数据,参数为普通键值对
- C# HttpWebRequest提交数据方式 .
- C#中使用HttpWebRequest用Post提交MultiPart数据
- C# HttpWebRequest提交数据方式浅析
- C#中使用HttpWebRequest用Post提交MultiPart数据
- C#中使用HttpWebRequest用Post提交MultiPart数据
- C#中使用HttpWebRequest提交MultiPart数据
- C# HttpWebRequest提交数据方式浅析
- C#中使用HttpWebRequest用Post提交MultiPart数据
- C# 使用HttpWebRequest Post提交数据,携带Cookie和相关参数示例
- C# HttpWebRequest提交数据方式
- 【转载】C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)