C# get post实现的内容很不同,如他们的传值方式不同等等,本文将做详细的讲解,本文也会给你C# get post方式请求web的具体方法。

C# get post中post和get的不同之处

get与post的区别在于:(对于CGI)

如果以get方式传输,所带参数附加在CGI程式的URL后直接传给server,并可从server端的QUERY_STRING这个环境变量中读取;

如果以post方式传输,则参数会被打包在数据报中传送给server,并可从CONTENT_LENGTH这个环境变量中读取出来。

还有一种情况是,你用的是GET方式,但传送的参数是路径,如:

----< ahref="/cgi-bin/a.pl/usr/local/bin/pine" >CGI< /a >

----这时所传递的参数"/usr/local/bin/pine"存放在PATH_INFO这个环境变量中。环境变量的读取方式为$str=$ENV{'QUERY_STRING'};

理论上说,get是从服务器上请求数据,POST是发送数据到服务器。事实上,get方法是把数据参数队列(query string)加到一个URL上,值和表单是一一对应的。比如说,name=John。在队列里,值和表单用一个&符号分开,空格用+号替换,特殊的符号转换成十六进制的代码。

因为这一队列在URL里边,这样队列的参数就能看得到,可以被记录下来,或更改。通常GET方法还限制字符的大小。

事实上post方法可以没有时间限制的传递数据到服务器,用户在浏览器端是看不到这一过程的,所以post方法比较适合用于发送一个保密的(比如信用卡号)或者比较大量的数据到服务器。

post是允许传输大量数据的方法,而Get方法会将所要传输的数据附在网址后面,然后一起送达服务器,因此传送的数据量就会受到限制,但是执行效率却比Post方法好。

Get

Post

Get是从服务器上请求数据

Post是发送数据到服务器

所带参数附加到CGI程序的URL后直接传给Server,并可从Server端的QueryString环境变量中读取

参数会被打包在数据中传送给Server,并可以从ContentLegth环境变量读取

Get会将传输的数据附在网址后面,然后一起送达Server

Get方式还限制字符的大少 不能大于2kb

Post可以没有时间限制的传递数据到服务器,用户在浏览器端看不到这一过程

Post比较适合发送保密的或比较大量的数据到Server

Post是允许传输大量数据的方法

Get方式安全性非常低

Get方式执行效率比Post快

Post方式安全性较高

我们了解了C# get post中post和get的不同之处,下面我们就来实现C# get post方式请求web

 
  1. private string GetModel(string strUrl)
  2. {
  3. string strRet = null;
  4. try
  5. {
  6. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUrl);
  7. request.Timeout = 2000;
  8. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  9. System.IO.Stream resStream = response.GetResponseStream();
  10. Encoding encode = System.Text.Encoding.Default;
  11. StreamReader readStream = new StreamReader( resStream, encode );
  12. Char[] read = new Char[256];
  13. int count = readStream.Read( read, 0, 256 );
  14. while (count > 0)
  15. {
  16. String str = new String(read, 0, count);
  17. strRet = strRet + str;
  18. count = readStream.Read(read, 0, 256);
  19. }
  20. resStream.Close();
  21. }
  22. catch(Exception e)
  23. {
  24. strRet="";
  25. }
  26. return strRet;
  27. }
  28. public static string PostModel(string strUrl, string strParm)
  29. {
  30. Encoding encode = System.Text.Encoding.Default;
  31. byte[] arrB = encode.GetBytes(strParm);
  32. string strBaseUrl = null;
  33. HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(strUrl);
  34. myReq.Method = "POST" ;
  35. myReq.ContentType = "application/x-www-form-urlencoded";
  36. myReq.ContentLength = arrB.Length;
  37. Stream outStream = myReq.GetRequestStream();
  38. outStream.Write(arrB,0,arrB.Length);
  39. outStream.Close();
  40. WebResponse myResp = null;
  41. try
  42. {
  43. //接收HTTP做出的响应
  44. myResp = myReq.GetResponse();
  45. }
  46. catch(Exception e)
  47. {
  48. int ii =0;
  49. }
  50. Stream ReceiveStream = myResp.GetResponseStream();
  51. StreamReader readStream = new StreamReader( ReceiveStream, encode );
  52. Char[] read = new Char[256];
  53. int count = readStream.Read( read, 0, 256 );
  54. string str = null;
  55. while (count > 0)
  56. {
  57. str += new String(read, 0, count);
  58. count = readStream.Read(read, 0, 256);
  59. }
  60. readStream.Close();
  61. myResp.Close();
  62. return str;
  63. }

最新文章

  1. h计算机二级基础知识题库,计算机二级考试试题
  2. ASP.NET MVC下使用SWFUpload完成剪切头像功能
  3. Direct交换器-编写生产者
  4. jetson nano 系统镜像制作_2.Jetson Nano烧写系统镜像
  5. 从set中取出指定位置的元素
  6. 2020年,程序员要做好苦日子的准备了!
  7. 天然气压缩因子计算软件_测量天然气用什么流量计?
  8. 算术逻辑运算单元ALU的串行和并行加法器
  9. 收藏!常用的档案馆(室)检索工具及编制方法
  10. linux色彩配置文件,Xfce得到颜色配置文件的支持
  11. struts2最近量产漏洞分析
  12. 我不需要保险,全家都不需要
  13. spring IOC和DI区别
  14. mindray心电监护仪使用说明_迈瑞心电监护仪说明书
  15. 加油站会员管理系统源码php_一对一直播源码的开发语音与操作模式分析讲解_源码吧...
  16. css 动画时钟 时分秒
  17. 保险业务管理系统(Java+Web+SSH+MySQL)
  18. 【Python】Python系列教程-- Python3 编程第一步(十八)
  19. 360手机刷机包 360手机线刷包 360手机卡刷包
  20. Stm32f030数字电源开发 Stm32同步buck降压数字电源

热门文章

  1. PC_@BCD码(8421BCD)@定点数加减法@补码减法公式
  2. 高精度加法(C++基础算法)
  3. 互联网日报 | 8月7日 星期六 | 华为上半年销售收入3204亿元;微博宣布下线“明星势力榜”;小米平板5系列8月10日发布...
  4. 入手评测 r5 5600x和r7 5700g选哪个好
  5. 基于Python下Tkinter实现学生选课管理系统
  6. 海报的5种处理方式,让你的照片更吸睛
  7. 2023-01-03 Echarts学习笔记(二) 常见Option配置项介绍:xAxis,yAxis,series,grid,toolbox,legend,tooltip,title,color等
  8. 计算机控制电缆 规范,控制电缆和计算机电缆安全CQC认证要求变更的通知
  9. Django4.1从入门到精通——模型的创建
  10. h7的HAL 1.8.0版本库的RTC时钟没起振 死循环 无法退出