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);
        }
  • 相关阅读:
    Leetcode 1002. 查找常用字符
    Leetcode 1020. 将数组分成和相等的三个部分
    Leetcode 1021. 最佳观光组合
    Leetcode 1022. 可被 K 整除的最小整数
    算法入门经典第六章 例题6-9 天平
    例题6-7 树的层次遍历
    算法入门经典第六章 例题6-4 破损的键盘
    算法入门经典-第五章 例题5-7 丑数
    算法入门经典第六章 例题6-5 移动盒子
    算法入门经典第六章 例题6-2 铁轨
  • 原文地址:https://www.cnblogs.com/hejunrex/p/2045131.html
Copyright © 2011-2022 走看看