用asp.net如何发送post过来的值(帐户,密码之类);
又如何用asp.net接收post过来的值.
开发工具,VS2005 (asp.net2.0)
直接F5运行。我网上找了段代码:但是传过来的值是空的。
不明白为什么。发送代码:
string postData = "uUsername=abc&uPassword=ccc";
        byte[] data = System.Text.Encoding.GetEncoding("GB2312").GetBytes(postData);
        string postUrl = "http://localhost:5880/WebSitePostTest/Default2.aspx";        // 准备请求...
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(postUrl);
        try
        {
            req.Method = "post";
            req.ContentType = "application/x-www-form-urlencoded";
            req.ContentLength = data.Length;
            Stream stream = req.GetRequestStream();            // 发送数据
            stream.Write(data, 0, data.Length);
            stream.Close();            HttpWebResponse rep = (HttpWebResponse)req.GetResponse();
            Stream receiveStream = rep.GetResponseStream();
            Encoding encode = System.Text.Encoding.GetEncoding("GB2312");
            StreamReader readStream = new StreamReader(receiveStream, encode);            Char[] read = new Char[256];
            int count = readStream.Read(read, 0, 256);
            StringBuilder sb = new StringBuilder("");
            while (count > 0)
            {
                String readstr = new String(read, 0, count);
                sb.Append(readstr);
                count = readStream.Read(read, 0, 256);
            }
            rep.Close();
            readStream.Close();
            Response.Write(sb.ToString());            Response.Write("Login success!");
            return true;
        }
        catch (Exception ex)
        {
            Response.Write("Login error:" + ex.Message.ToString());
            return false;
        }
接收代码:        string uUsername = Request.Form["uUsername"];
        string uPassword = Request.Form["uPassword"];
        if (uUsername != null && uUsername != "")
        {
            Response.Write("post data:uUsername" + uUsername + ",uPassword:" + uPassword);
        }
        else
        {
            Response.Write("post data null!");
        }
 可是显示的结果为:post data null!"
和预期的结果不同。

解决方案 »

  1.   

    试一下这样吧                if (Request.Form["uPassword"] != null && Request.Form["uUsername"] != "")
            {
    string uUsername = Request.Form["uUsername"].ToString();
            string uPassword = Request.Form["uPassword"].ToString();
                Response.Write("post data:uUsername" + uUsername + ",uPassword:" + uPassword);
            }
            else
            {
                Response.Write("post data null!");
            }
      

  2.   

    设置断点检查一下,uPassword和uPassword有没有传递过去.
      

  3.   

    你的密码用pose传???不好吧用这个式下看
    发送页:
        1.定义静态变量:  public static string str="";
        2. str=this.TextBox1.Text;
           Server.Transfer("webform2.aspx");
     接收页:
        1.引入第一页的命名空间:using WebApplication1;
        2  this.TextBox1.Text=WebForm1.str;
    在接收页 的html代码里加上一行: <%@ Reference Page = "WebForm1.aspx" %>            
         
        WebForm1 fp=(WebForm1)Context.Handler;
        this.TextBox1.Text=fp.name;   //name 是第一页的public变量
     
     
    Context  提供对整个当前上下文(包括请求对象)的访问。你可以使用此类共享页之间的信息。
      

  4.   

    用Fiddler工具看下里面URL的数据怎么样!!
      

  5.   

    CH_MARS(木头) 兄:
    这只是个技术实例,
    实现运用是:
    在多个系统之间传帐户信息,实现一点登录。
    而这些系统不是单一的技术做的。
    有asp,asp.net php java等。
      

  6.   

    req.Method = "post";
    这个
    POST要大写
      

  7.   

    用这个软件捕捉一下看,TamperIE
      

  8.   


    试一下这样吧                if (Request.Form["uPassword"] != null && Request.Form["uUsername"] != "")
            {
    string uUsername = Request.Form["uUsername"].ToString();
            string uPassword = Request.Form["uPassword"].ToString();
                Response.Write("post data:uUsername" + uUsername + ",uPassword:" + uPassword);
            }
            else
            {
                Response.Write("post data null!");
            }
      

  9.   

    string uUsername = Request["uUsername"].ToString();
            string uPassword = Request["uPassword"].ToString();
      

  10.   

    或才改成
    if (Request.Form["uPassword"] != null || Request.Form["uUsername"] != "")
            {
    string uUsername = Request.Form["uUsername"].ToString();
            string uPassword = Request.Form["uPassword"].ToString();
                Response.Write("post data:uUsername" + uUsername + ",uPassword:" + uPassword);
            }
            else
            {
                Response.Write("post data null!");
            }
      

  11.   

    自己手写一段HTML代码,在按钮事件中执行。