C#應用post發送和吸收數據的辦法。本站提示廣大學習愛好者:(C#應用post發送和吸收數據的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#應用post發送和吸收數據的辦法正文
本文實例講述了C#應用post發送和吸收數據的辦法。分享給年夜家供年夜家參考。詳細完成辦法以下:
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); }
願望本文所述對年夜家的C#法式設計有所贊助。