C# get post之 get 方式

来源:互联网 发布:全国房地产数据公司 编辑:程序博客网 时间:2024/05/01 23:52

1.C# get post之 get 方式。

get 方式通过在网络地址附加参数来完成数据的提交,比如在地址 http://www.google.com/webhp?hl=zh-CN 中,前面部分 http://www.google.com/webhp 表示数据提交的网址,后面部分 hl=zh-CN 表示附加的参数,其中 hl 表示一个键(key), zh-CN 表示这个键对应的值(value)。程序代码如下:

1.            HttpWebRequest req (HttpWebRequest) 
HttpWebRequest.Create( 
"http://www.google.com/webhp?hl=zh-CN" );  

2.            req.Method "GET";  

3.            using (WebResponse wr req.GetResponse())  

4.            {  

5.            //在这里对接收到的页面内容进行处理  

6.            }  

2.C# get post之post方式。

post方式通过在页面内容中填写参数的方法来完成数据的提交,参数的格式和 get 方式一样,是类似于 hl=zh-CN&newwindow=1 这样的结构。程序代码如下:

7.            string param "hl=zh-CN&newwindow=1";  

8.            byte[] bs Encoding.ASCII.GetBytes(param);  

9.            HttpWebRequest req (HttpWebRequest)
HttpWebRequest.Create( 
"http://www.google.com/intl/zh-CN/" );  

10.        req.Method "POST";  

11.        req.ContentType "application/x-www-form-urlencoded";  

12.        req.ContentLength bs.Length;  

13.        using (Stream reqStream req.GetRequestStream())  

14.        {  

15.        reqStream.Write(bs, 0, bs.Length);  

16.        }  

17.        using (WebResponse wr req.GetResponse())  

18.        {  

19.        //在这里对接收到的页面内容进行处理  

20.        }  

在上面的代码中,我们访问了 www.google.com 的网址,分别以 get 和post方式提交了数据,并接收了返回的页面内容。然而,如果提交的参数中含有中文,那么这样的处理是不够的,需要对其进行编码,让对方网站能够识别。

3. C# get post之使用 get 方式提交中文数据。

get 方式通过在网络地址中附加参数来完成数据提交,对于中文的编码,常用的有 gb2312 和 utf8 两种,用 gb2312 方式编码访问的程序代码如下:

21.        Encoding myEncoding Encoding.GetEncoding("gb2312");  

22.        string address "http://www.baidu.com/s?" +
HttpUtility.UrlEncode(
"参数一"myEncoding)
"=" HttpUtility.UrlEncode("值一"myEncoding);  

23.        HttpWebRequest req (HttpWebRequest)HttpWebRequest.Create(address);  

24.        req.Method "GET";  

25.        using (WebResponse wr req.GetResponse())  

26.        {  

27.        //在这里对接收到的页面内容进行处理  

28.        

在上面的程序代码中,我们以 get 方式访问了网址 http://www.baidu.com/s ,传递了参数“参数一=值一”,由于无法告知对方提交数据的编码类型,所以编码方式要以对方的网站为标准。常见的网站中, www.baidu.com (百度)的编码方式是 gb2312, www.google.com (谷歌)的编码方式是 utf8。

4. C# get post之使用post方式提交中文数据。

post方式通过在页面内容中填写参数的方法来完成数据的提交,由于提交的参数中可以说明使用的编码方式,所以理论上能获得更大的兼容性。用 gb2312 方式编码访问的程序代码如下:

29.        Encoding myEncoding Encoding.GetEncoding("gb2312");  

30.        string param HttpUtility.UrlEncode("参数一"myEncoding) "=" 
HttpUtility.UrlEncode(
"值一"myEncoding) "&" +
HttpUtility.UrlEncode(
"参数二"myEncoding) "=" 
HttpUtility.UrlEncode(
"值二"myEncoding);  

31.        byte[] postBytes Encoding.ASCII.GetBytes(param);  

32.        HttpWebRequest req (HttpWebRequest) HttpWebRequest.Create
"http://www.baidu.com/s" );  

33.        req.Method "POST";  

34.        req.ContentType "application/x-www-form-urlencoded;charset=gb2312";  

35.        req.ContentLength postBytes.Length;  

36.        using (Stream reqStream req.GetRequestStream())  

37.        {  

38.        reqStream.Write(bs, 0, bs.Length);  

39.        }  

40.        using (WebResponse wr req.GetResponse())  

41.        {  

42.        //在这里对接收到的页面内容进行处理  

43.        

从上面的代码可以看出,post中文数据的时候,先使用 UrlEncode 方法将中文字符转换为编码后的 ASCII 码,然后提交到服务器,提交的时候可以说明编码的方式,用来使对方服务器能够正确的解析。

以上列出了客户端程序使用 HTTP 协议与服务器交互的情况,常用的是 get 和post方式。现在流行的 WebService 也是通过 HTTP 协议来交互的,使用的是post方法。与以上稍有所不同的是, WebService 提交的数据内容和接收到的数据内容都是使用了 XML 方式编码。所以, HttpWebRequest 也可以使用在调用 WebService 的情况下。

以上就是对C# get post方法的简单介绍。

 

------------------------------------------------------------------------------------------

 

C#中GET和POST的简单区别

GET和POST是最基本常用的,表单提交中get和post方式的区别归纳如下几点:

  • GET是从服务器上获取数据,POST是向服务器传送数据。
  • GET 是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,例如(url=asp.aspx?id=1)在URL中可以看到。POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
  • 对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据。
  • GET传送的数据量较小,不能大于2KB(这主要是因为受URL长度限制)。POST传送的数据量较大,一般被默认为不受限制。但理论上,限制取决于服务器的处理能力。
  • GET 安全性较低,POST安全性较高。因为GET在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记 录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一 同显示在用户面前。POST的所有操作对用户来说都是不可见的。
  • 在FORM提交的时候,如果不指定Method,则默认为 GET请求(.net默认是POST),Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为“+” 号,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISO Latin-1)值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;GET方式提交的数据最多只能有 2048字节,而POST则没有此限制。POST传递的参数在doc里,也就http协议所传递的文本,接受时再解析参数部分。获得参数。一般用POST 比较好。POST提交数据是隐式的,GET是通过在url里面传递的,用来传递一些不需要保密的数据,GET是通过在URL里传递参数,POST不是。
原创粉丝点击