zoukankan      html  css  js  c++  java
  • C# : WebRequest发起Http Post请求模拟登陆并cookie处理示例

    代码
    CookieContainer cc=new CookieContainer();
    string url = “http://mailbeta.263.net/xmweb”;
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Method 
    = “POST”;
    request.ContentType 
    = “application/x-www-form-urlencoded”;
    request.CookieContainer
    =cc;
    string user=”user”; //用户名
    string pass=”pass”; //密码
    string data = “func=login&usr=” + HttpUtility.UrlEncode(user) +&sel_domain=263.net&domain=263.net&pass=” +HttpUtility.UrlEncode(pass) +&image2.x=0&image2.y=0&verifypcookie=&verifypip=”;
    request.ContentLength 
    = data.Length;
    StreamWriter writer 
    = new StreamWriter(request.GetRequestStream(),Encoding.ASCII);
    writer.Write(data);
    writer.Flush();
    HttpWebResponse response 
    = (HttpWebResponse)request.GetResponse();
    string encoding = response.ContentEncoding;
    if (encoding == null || encoding.Length < 1) {
        encoding 
    = "UTF-8"//默认编码
    }
    StreamReader reader 
    = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
    data 
    = reader.ReadToEnd();
    Console.WriteLine(data);
    response.Close();

    int index=data.IndexOf("sid=");
    string sid=data.Substring(index+4,data.IndexOf("&",index)-index-4);
    Console.WriteLine(sid);

    url 
    ="http://wm11.263.net/xmweb?func=mlst&act=show&usr="+user+"&sid="+sid+"&fid=1&desc=1&pg=1&searchword=&searchtype=&searchsub=&searchfd=&sort=4";
    request 
    = (HttpWebRequest)WebRequest.Create(url);
    request.CookieContainer 
    = cc;
    foreach(Cookie cookie in response.Cookies) {
        cc.Add(cookie);
    }
    response 
    = (HttpWebResponse)request.GetResponse();
    encoding 
    = response.ContentEncoding;
    if (encoding == null || encoding.Length < 1) {
        encoding 
    = "UTF-8"//默认编码
    }
    reader 
    = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
    data 
    = reader.ReadToEnd();
    Console.WriteLine(data);
    response.Close();

    以上模拟登陆263邮箱,

    //post时,自动跳转与否??

     request.AllowAutoRedirect = true;

  • 相关阅读:
    (转)if __name__ == '__main__' 如何正确理解?
    (转)Django配置mysql数据库
    (转)Python虚拟环境pyenv、venv(pyvenv)、virtualenv之间的区别,终于搞清楚了!
    找出Framework 4.0 新增的方法和新增的类(下)
    C# MBG 扩展方法类库 分享
    是技术还是态度,网易的视频Title
    不要返回null之EmptyFactory
    你知道这段代码的输出吗?
    C# 4.0 大数的运算,BigInteger
    CleanCode: 面向过程 PK 面向对象
  • 原文地址:https://www.cnblogs.com/Fooo/p/1848568.html
Copyright © 2011-2022 走看看