您的位置:首页 > 理论基础 > 计算机网络

HttpWebRequest模拟登陆,存储Cookie以便登录请求后使用

2013-12-23 20:55 766 查看
[一篮饭特稀原创,转载请注明出自/article/6222987.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     }


e.g.

1             string strIMSPhone = tb_IMSPhone.Text.Trim();
2             string strIMSPwd = tb_IMSPwd.Text.Trim();
3             string postData = "username=" + strIMSPhone + "&password=" + strIMSPwd + "&type=2";
4             CookieContainer cookie=new CookieContainer();
5             if (IMSHelper.PostLogin(postData, post_signIn, ref cookie).Equals("ok"))
6             {
7                 string strCont = PostRequest("", post_getContJsonData, cookie);
8             }


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐