zoukankan      html  css  js  c++  java
  • 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, 01024)) > 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, 0256);
            string str = null;
            while (count > 0)
            {
                str += new String(read, 0, count);
                count = readStream.Read(read, 0256);
            }
            readStream.Close();
            myResp.Close();

            Response.Write(str);
        }
  • 相关阅读:
    HDU 6143 Killer Names【dp递推】【好题】【思维题】【阅读题】
    HDU 6143 Killer Names【dp递推】【好题】【思维题】【阅读题】
    POJ 3974 Palindrome【manacher】【模板题】【模板】
    POJ 3974 Palindrome【manacher】【模板题】【模板】
    HDU 6127 Hard challenge【计算机几何】【思维题】
    HDU 6127 Hard challenge【计算机几何】【思维题】
    HDU 6129 Just do it【杨辉三角】【思维题】【好题】
    HDU 6129 Just do it【杨辉三角】【思维题】【好题】
    HDU 3037 Saving Beans【Lucas定理】【模板题】【模板】【组合数取余】
    8.Math 对象
  • 原文地址:https://www.cnblogs.com/guanjie20/p/2378424.html
Copyright © 2011-2022 走看看