加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C# 通过post发送和接收数据的范例代码

发布时间:2020-12-15 17:54:51 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 public partial class Post_Server : System.Web.UI.Page{ protected void Page_Load(object sender,EventArgs e) { string type = ""; string Re = "

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

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,1024)) > 0)
            {
                builder.Append(Encoding.UTF8.GetString(buffer,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,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,256);
        string str = null;
        while (count > 0)
        {
            str += new String(read,count);
            count = readStream.Read(read,256);
        }
        readStream.Close();
        myResp.Close();
 
        Response.Write(str);
    }

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读