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     }

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             }

 

你可能感兴趣的:(request)