C#使用post發(fā)送和接收數(shù)據(jù)的方法
本文實(shí)例講述了C#使用post發(fā)送和接收數(shù)據(jù)的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
public partial class Post_Server : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string type = ""; string Re = ""; Re += "數(shù)據(jù)傳送方式:"; if (Request.RequestType.ToUpper() == "POST") { type = "POST"; Re += type + "<br/>參數(shù)分別是:<br/>"; SortedList table = Param(); if (table != null) { foreach (DictionaryEntry De in table) { Re += "參數(shù)名:" + De.Key + " 值:" + De.Value + "<br/>"; } } else { Re = "你沒(méi)有傳遞任何參數(shù)過(guò)來(lái)!"; } } else { type = "GET"; Re += type + "<br/>參數(shù)分別是:<br/>"; NameValueCollection nvc = GETInput(); if (nvc.Count != 0) { for (int i = 0; i < nvc.Count; i++){ Re += "參數(shù)名:"+nvc.GetKey(i)+"值:"+nvc.GetValues(i)[0]+"<br/>"; } } else { Re = "你沒(méi)有傳遞任何參數(shù)過(guò)來(lái)!"; } } Response.Write(Re); } //獲取GET返回來(lái)的數(shù)據(jù) private NameValueCollection GETInput() { return Request.QueryString; } // 獲取POST返回來(lái)的數(shù)據(jù) 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) //參數(shù)傳遞不只一項(xiàng) { 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)) //避免用戶傳遞相同參數(shù) { SortList.Add(paramN, paramV); } else //如果有相同的,一直刪除取最后一個(gè)值為準(zhǔn) { SortList.Remove(paramN); SortList.Add(paramN, paramV); } } } else //參數(shù)少于或等于1項(xiàng) { int equalindex = POSTStr.IndexOf('='); if (equalindex != -1) { //參數(shù)是1項(xiàng) string paramN = POSTStr.Substring(0, equalindex); string paramV = POSTStr.Substring(equalindex + 1); SortList.Add(paramN, paramV); } else //沒(méi)有傳遞參數(shù)過(guò)來(lái) { 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做出的響應(yīng) 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); }
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C#通過(guò)cmd調(diào)用7z軟件實(shí)現(xiàn)壓縮和解壓文件
這篇文章介紹了C#通過(guò)cmd調(diào)用7z軟件實(shí)現(xiàn)壓縮和解壓文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04C#利用win32 Api 修改本地系統(tǒng)時(shí)間、獲取硬盤序列號(hào)
這篇文章主要介紹了C#利用win32 Api 修改本地系統(tǒng)時(shí)間、獲取硬盤序列號(hào)的方法及代碼分享,需要的朋友可以參考下2015-03-03Winform控件Picture實(shí)現(xiàn)圖片拖拽顯示效果
這篇文章主要為大家詳細(xì)介紹了Winform控件Picture實(shí)現(xiàn)圖片拖拽顯示效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09C#中XmlTextWriter讀寫xml文件詳細(xì)介紹
.NET中包含了很多支持XML的類,這些類使得程序員使用XML編程就如同理解XML文件一樣簡(jiǎn)單。在這篇文章中,我將給出這樣的一個(gè)類的使用示例,這個(gè)類就是XmlTextWriter類2013-04-04C#值類型、引用類型中的Equals和==的區(qū)別淺析
這篇文章主要介紹了C#值類型、引用類型中的Equals和==的區(qū)別淺析,本文分別對(duì)C#值類型和引用類型中的Equals和==做了講解和給出了實(shí)例,需要的朋友可以參考下2015-01-01C#實(shí)現(xiàn)獲取鼠標(biāo)句柄的方法
這篇文章主要介紹了C#實(shí)現(xiàn)獲取鼠標(biāo)句柄的方法,詳細(xì)的講述了實(shí)現(xiàn)獲取鼠標(biāo)句柄的具體步驟及實(shí)現(xiàn)方法,并附有完整的實(shí)例源碼供大家參考,需要的朋友可以參考下2014-09-09