zoukankan      html  css  js  c++  java
  • 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             }
  • 相关阅读:
    MyEclipse 工具优化和初始化设置
    ubuntu添加软件源
    C/C++数组名与指针区别深入探索
    为什么不常见include .c文件
    [置顶] Linux学习笔记(完整版)
    linux .deb文件安装
    我们就是查拉图斯特拉所说最后的人?!
    关于Mina
    讨厌SVN
    关于对Mina的一些看法
  • 原文地址:https://www.cnblogs.com/wanghafan/p/3284481.html
Copyright © 2011-2022 走看看