CookieContainer cc = new CookieContainer();
  
             string url = "http://bbs.runsky.com/bbs/logging.php";
             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri(url));
             string s = "action=login&username=xs1024&password=tttt";
             byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(s);
             req.Method = "POST";
             req.ContentType = "application/x-www-form-urlencoded";
             req.ContentLength = requestBytes.Length;
             req.CookieContainer = cc;
             Stream requestStream = req.GetRequestStream();
             requestStream.Write(requestBytes, 0, requestBytes.Length);
             requestStream.Close();             HttpWebResponse wr = (HttpWebResponse)req.GetResponse();             StreamReader sr2 = new StreamReader(wr.GetResponseStream(), Encoding.Default);
             string text2 = sr2.ReadToEnd();
             richTextBox1.AppendText(text2);
这就是登录的问题,不管怎么设置,最后看返回来的页,都是没有登录!!!!!!!

解决方案 »

  1.   

    可以用 action=login&username=xs1024&password=tttt   测试
      

  2.   


    CookieContainer cc = new CookieContainer(); 
       
                 string url = "http://bbs.runsky.com/bbs/logging.php"; 
                 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri(url)); 
                 string s = "action=login&username=xs1024&password=tttt"; 
                 byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(s); 
                 req.Method = "POST"; 
                 req.ContentType = "application/x-www-form-urlencoded"; 
                 req.ContentLength = requestBytes.Length; 
                 req.CookieContainer = cc; 
                 Stream requestStream = req.GetRequestStream(); 
                 requestStream.Write(requestBytes, 0, requestBytes.Length); 
                 requestStream.Close();              HttpWebResponse wr = (HttpWebResponse)req.GetResponse();              StreamReader sr2 = new StreamReader(wr.GetResponseStream(), Encoding.Default); 
                 string text2 = sr2.ReadToEnd(); 
                 richTextBox1.AppendText(text2); 
      

  3.   

    不好意思,我看到了一步一跟踪,看到几段文字是红色
    - [System.Net.ConnectStream] {System.Net.ConnectStream} System.Net.ConnectStream
    + base {System.Net.ConnectStream} System.IO.Stream {System.Net.ConnectStream}
    CanRead false bool
    CanSeek false bool
    CanTimeout true bool
    CanWrite true bool
    + Length “((System.Net.ConnectStream)(requestStream)).Length”引发了“System.NotSupportedException”类型的异常 long {System.NotSupportedException}
    + Position “((System.Net.ConnectStream)(requestStream)).Position”引发了“System.NotSupportedException”类型的异常 long {System.NotSupportedException}
    ReadTimeout 300000 int
    WriteTimeout 300000 int
      

  4.   


    在FORM在 是这样的,不知道,后面的& 是什么意思,是不是这个问题
    action=logging.php?action=login&
      

  5.   

    转一个C#登陆的:
    只要用C#写一个POST请求发给服务器就OK了   
    下面是一个POST登陆的例子,按样你要的发帖、回复帖的表单该一下就行了   
    通过HttpWebRequest       发送       POST       请求实现自动登陆       
            
    怎样通过HttpWebRequest       发送       POST       请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数据到网站等。   
    假如某个页面有个如下的表单(Form):       <form       name="form1"       action="http://www.breakn.com/login.asp"       method="post">   
    <input       type="text"       name="userid"       value="">   
    <input       type="password"       name="password"       value="">   
    </form>       从表单可看到表单有两个表单域,一个是userid另一个是password,所以以POST形式提交的数据应该包含有这两项。   
    其中POST的数据格式为:   
    表单域名称1=值1&表单域名称2=值2&表单域名称3=值3……   
    要注意的是“值”必须是经过HTMLEncode的,即不能包含“   <>   =&”这些符号。   本例子要提交的数据应该是:   
    userid=value1&password=value2   用C#写提交程序:   
    string       strId       =       "guest";   
    string       strPassword=       "123456";   ASCIIEncoding       encoding=new       ASCIIEncoding();   
    string       postData="userid="+strId;   
    postData       +=       ("&password="+strPassword);   byte[]       data       =       encoding.GetBytes(postData);   //       Prepare       web       request   
    HttpWebRequest       myRequest       =   
    (HttpWebRequest)WebRequest.Create("http://www.here.com/login.asp");   myRequest.Method       =       "POST";   
    myRequest.ContentType="application/x-www-form-urlencoded";   
    myRequest.ContentLength       =       data.Length;   
    Stream       newStream=myRequest.GetRequestStream();   //       Send       the       data.   
    newStream.Write(data,0,data.Length);   
    newStream.Close();   //       Get       response   
    HttpWebResponse       myResponse=(HttpWebResponse)myRequest.GetResponse();   
    StreamReader       reader       =       new       StreamReader(response.GetResponseStream(),Encoding.Default);   
    string       content       =       reader.ReadToEnd();   
    Response.Write(content);  
      

  6.   

    还是不好用,可以不可以试一下这个网站 http://bbs.runsky.com/bbs/index_login.php
    用户名/密码: xs1024/tttt
      

  7.   

      两处改动成功了  红色的部分
    string url = "http://bbs.runsky.com/bbs/logging.php?action=login&";
    string s = "username=xs1024&password=tttt&loginsubmit=%CC%E1+%26nbsp%3B+%BD%BB";这里最好是ASCII
     byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(s); 
      

  8.   

    成功了,但是loginsubmit=%CC%E1+%26nbsp%3B+%BD%BB"; 
    是什么意思 ?谢谢
      

  9.   

    =%CC%E1+%26nbsp%3B+%BD%BB 翻译过来是什么
      

  10.   


    =%CC%E1+%26nbsp%3B+%BD%BB  翻译过来是  提 &nbsp; 交下面是登陆面页中的
     <input  type="submit" name="loginsubmit" value="提 &nbsp; 交"  > 
      

  11.   

    为什么要加上loginsubmit这个参数
      

  12.   


    用Wireshark以前叫Ethereal,抓包工具运行后正常登陆一下,能抓取到实际发送的数据包,然后自己对照分析以下就OK了~!