最近由于开始接触httpwebrequest和httpwebresponse。自己操作了加上goggle都没能解决。希望大家帮忙给指点一二。现在这个网站是这样的。首先登录该网站首页(未登录),会给一个sessionid。通过抓包发现请求验证码时,没有带此session的cookie。登录后跳转到一个导航页面3秒后自动跳转会第一次登录的页面。我的操作是这样的,直接请求验证码 (由于抓包发现没有带cookie去请求),
 Random r=new Random();            HttpWebResponse resp;
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://xxxx/code?"+r.NextDouble().ToString());
            req.Timeout = 15000;
            
            resp = (HttpWebResponse)req.GetResponse();
            String temp=resp.Headers["Set-Cookie"];
            String[] cok = temp.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);            int aa = cok[0].IndexOf("=");
            string cValue = cok[0].Substring(aa + 1).Trim();
            cc = new CookieContainer();
            Uri s = new Uri("http://xxxx");
            Cookie c = new Cookie("PHPSESSID", cValue, "/", s.Host);
            cc.Add(c);   //CookieContainer
保存cookie后把sessionid和验证码用户名等数据都post进请求里面。
 string postData = "";
            postData  = "username=" + name;
            postData+="&code="+code;
            postData += ("&password=" + password);
            postData += "&x=" + 41;
            postData += "&y=" + 26;
            byte[] data = Encoding.Default.GetBytes(postData);            Uri u = new Uri("https://xxx");
            HttpWebRequest request = WebRequest.Create(u) as HttpWebRequest;
                request.Referer = "http://xxxx";
                request.Accept = "text/html, application/xhtml+xml, */*";
                request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = data.Length;
                request.Method = "POST";
                request.KeepAlive = true;                //写入 post
                Stream newStream = request.GetRequestStream();
                newStream.Write(data, 0, data.Length);
                newStream.Close();                request.CookieContainer = cc; //刚刚验证码的cookie
                MessageBox.Show(postData);
            //接收返回的页面
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            System.IO.Stream responseStream = response.GetResponseStream();
            System.IO.StreamReader reader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
            string srcString = reader.ReadToEnd();
            
            textBox1.Text = srcString;
但是登录却提示验证码错误。请问错误何在?
在我提交后的头信息里没发现我加入的cookie,并且出现一个 100-continue 。何解?大家说该用什么样的一个流程,我的操作有误吗?什么时候时候请求应该附加cookie什么时候不加?谢谢