C# Post数据和接收简单示例【摘】
来源:互联网 发布:青岛知豆在哪租 编辑:程序博客网 时间:2024/06/16 15:40
public partial class Post_Server : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { string type = ""; string Re = ""; Re += "数据传送方式:"; if (Request.RequestType.ToUpper() == "POST") { type = "POST"; Re += type + "<br/>参数分别是:<br/>"; SortedList table = Param(); if (table != null) { foreach (DictionaryEntry De in table) { Re += "参数名:" + De.Key + " 值:" + De.Value + "<br/>"; } } else { Re = "你没有传递任何参数过来!"; } } else { type = "GET"; Re += type + "<br/>参数分别是:<br/>"; NameValueCollection nvc = GETInput(); if (nvc.Count != 0) { for (int i = 0; i < nvc.Count; i++) { Re += "参数名:" + nvc.GetKey(i) + " 值:" + nvc.GetValues(i)[0] + "<br/>"; } } else { Re = "你没有传递任何参数过来!"; } } Response.Write(Re); } //获取GET返回来的数据 private NameValueCollection GETInput() { return Request.QueryString; } // 获取POST返回来的数据 private string PostInput() { try { System.IO.Stream s = Request.InputStream; int count = 0; byte[] buffer = new byte[1024]; StringBuilder builder = new StringBuilder(); while ((count = s.Read(buffer, 0, 1024)) > 0) { builder.Append(Encoding.UTF8.GetString(buffer, 0, count)); } s.Flush(); s.Close(); s.Dispose(); return builder.ToString(); } catch (Exception ex) { throw ex; } } private SortedList Param() { string POSTStr = PostInput(); SortedList SortList = new SortedList(); int index = POSTStr.IndexOf("&"); string[] Arr = { }; if (index != -1) //参数传递不只一项 { Arr = POSTStr.Split('&'); for (int i = 0; i < Arr.Length; i++) { int equalindex = Arr[i].IndexOf('='); string paramN = Arr[i].Substring(0, equalindex); string paramV = Arr[i].Substring(equalindex + 1); if (!SortList.ContainsKey(paramN)) //避免用户传递相同参数 { SortList.Add(paramN, paramV); } else //如果有相同的,一直删除取最后一个值为准 { SortList.Remove(paramN); SortList.Add(paramN, paramV); } } } else //参数少于或等于1项 { int equalindex = POSTStr.IndexOf('='); if (equalindex != -1) { //参数是1项 string paramN = POSTStr.Substring(0, equalindex); string paramV = POSTStr.Substring(equalindex + 1); SortList.Add(paramN, paramV); } else //没有传递参数过来 { SortList = null; } } return SortList; }}
protected void Button1_Click(object sender, EventArgs e) { Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); byte[] arrB = encode.GetBytes("aa=aa&bb=好飞"); HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://localhost:11626/MyTest/Post_Server.aspx"); myReq.Method = "POST"; myReq.ContentType = "application/x-www-form-urlencoded"; myReq.ContentLength = arrB.Length; Stream outStream = myReq.GetRequestStream(); outStream.Write(arrB, 0, arrB.Length); outStream.Close(); //接收HTTP做出的响应 WebResponse myResp = myReq.GetResponse(); Stream ReceiveStream = myResp.GetResponseStream(); StreamReader readStream = new StreamReader(ReceiveStream, encode); Char[] read = new Char[256]; int count = readStream.Read(read, 0, 256); string str = null; while (count > 0) { str += new String(read, 0, count); count = readStream.Read(read, 0, 256); } readStream.Close(); myResp.Close(); Response.Write(str); }
转载自:http://www.cnblogs.com/goody9807/archive/2011/09/26/2191655.html
0 0
- C# Post数据和接收简单示例
- C# Post数据和接收简单示例
- C# Post数据和接收简单示例
- C# Post数据和接收简单示例【摘】
- C# Post数据和接收简单示例【摘】
- C# Post数据和接收简单示例【摘】
- C#中POST数据和接收的几种方式
- C#使用Socket发送和接收TCP数据示例
- C#使用UdpClient发送和接收UDP数据示例
- c#发送和接收get,post消息
- Java Post 数据请求和接收
- http post 接收数据 和 乱码问题
- C#中POST数据和接收的几种方式(抛砖引玉)
- C#使用UdpClient发送和接收UDP数据示例 16进制与字符串互转
- C#使用UdpClient发送和接收UDP数据示例 16进制与字符串互转
- C#接收POST数据流
- C# 接收post到后台的json数据
- 接收Post的数据
- HTML中的Hack手段之条件注释
- 2014过了,2015来了
- SOAP详解
- Ernest Adams总结50个最伟大的游戏创意
- 难道今天有点空闲,回来冒个泡。
- C# Post数据和接收简单示例【摘】
- 半数集问题
- LEETCODE: Combinations
- 有时间在写
- ERROR CODE:0X8007000D Microsoft Office 2010在安装过程中出错 解决方法
- 最小busybox initramfs构建 qemu调试
- Java笔试题
- myeclipse中tomcat 7.0 关于64位与32位的冲突问题 ( tcnative-1.dll )
- Python学习手册(第四版)学习笔记(三)编写运行“Hello ,world!”