C# HttpWebRequest保存cookies模拟登录的方法【z】【解决】
CookieContainer cookies = new CookieContainer(); string url = "http://www.google.com.hk/"; HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); myHttpWebRequest.Timeout = 20 * 1000; //连接超时 myHttpWebRequest.Accept = "*/*"; myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;)"; myHttpWebRequest.CookieContainer = new CookieContainer(); //暂存到新实例 myHttpWebRequest.GetResponse().Close(); cookies = myHttpWebRequest.CookieContainer; //保存cookies string cookiesstr = myHttpWebRequest.CookieContainer.GetCookieHeader(myHttpWebRequest.RequestUri); //把cookies转换成字符串 url = "http://www.google.com.hk/search?oe=utf8&ie=utf8&source=uds&hl=zh-CN&q=3g"; myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); myHttpWebRequest.Timeout = 20 * 1000; //连接超时 myHttpWebRequest.Accept = "*/*"; myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;)"; myHttpWebRequest.CookieContainer = cookies; //使用已经保存的cookies 方法一 //myHttpWebRequest.Headers.Add("Cookie", cookiesstr); //使用已经保存的cookies 方法二 HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); Stream stream = myHttpWebResponse.GetResponseStream(); stream.ReadTimeout = 15 * 1000; //读取超时 StreamReader sr = new StreamReader(stream, Encoding.GetEncoding("utf-8")); string strWebData = sr.ReadToEnd(); richTextBox1.Text = cookiesstr +"rnrn"+ strWebData;