[转发]HttpWebRequest模拟登陆,存储Cookie以便登录请求后使用
转自http://www.cnblogs.com/wanghafan/p/3284481.html
PostLogin :登录,并保存Cookie
1 public static string PostLogin(string postData, string requestUrlString, ref CookieContainer cookie) 2 { 3 ASCIIEncoding encoding = new ASCIIEncoding(); 4 byte[] data = encoding.GetBytes(postData); 5 //向服务端请求 6 HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(requestUrlString); 7 myRequest.Method = "POST"; 8 myRequest.ContentType = "application/x-www-form-urlencoded"; 9 myRequest.ContentLength = data.Length; 10 myRequest.CookieContainer = new CookieContainer(); 11 Stream newStream = myRequest.GetRequestStream(); 12 newStream.Write(data, 0, data.Length); 13 newStream.Close(); 14 //将请求的结果发送给客户端(界面、应用) 15 HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); 16 cookie.Add(myResponse.Cookies); 17 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); 18 return reader.ReadToEnd(); 19 }
PostRequest :登录后使用Cookie进行其他操作
1 public static string PostRequest(string postData, string requestUrlString, CookieContainer cookie) 2 { 3 ASCIIEncoding encoding = new ASCIIEncoding(); 4 byte[] data = encoding.GetBytes(postData); 5 HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(requestUrlString); 6 myRequest.Method = "POST"; 7 myRequest.ContentType = "application/x-www-form-urlencoded"; 8 myRequest.ContentLength = data.Length; 9 myRequest.CookieContainer = cookie; 10 Stream newStream = myRequest.GetRequestStream(); 11 newStream.Write(data, 0, data.Length); 12 newStream.Close(); 13 HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); 14 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); 15 return reader.ReadToEnd(); 16 }
浙公网安备 33010602011771号