• 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);
        }
  • 相关阅读:
    关于*和&的数组操作运算对比(一维数组)
    GCC内联汇编
    输出10进制、16进制
    异常退出时的出栈
    字典
    List简单增删改查
    数组的增删改查
    Excel的简单导入导出
    文件流
    Lambda 的简单入门
  • 原文地址:https://www.cnblogs.com/goody9807/p/2191655.html
Copyright © 2020-2023  润新知