HttpWebRequest 保存Cookies,模拟Session登录

前面使用HttpWebRequest 对象可以抓取网页中一些资料,不过有些页面可以直接打开,而有些页面必登录之后才能打开,也就是在登录后保存登录信息在Session,这样就可以访问有权限的页面了。下面通过HttpWebRequest获取网页内容并保持session,最主要的就是存储cookie。第二次请求网页的时候把cookie传送过去,这样就可以访问有Session的页了。


CookieContainer cookies = new CookieContainer();
        private void button1_Click(object sender, EventArgs e)
        {
            var str = "username=wzh&userpwd=1223";//登录名和密码
            var buf = Encoding.UTF8.GetBytes(str);

            var loginUrl="http://localhost:15993/home/login";//提交登录地址
            var postUrl="http://localhost:15993/home/Item";//此页需登录后才能访问

            HttpWebRequest res = (HttpWebRequest)HttpWebRequest.Create(new Uri(loginUrl));
            res.Method = "post";
            res.CookieContainer = cookies;

            //向提交流中写入信息
            var writeStream = res.GetRequestStream();
            writeStream.Write(buf, 0, buf.Length);
            writeStream.Close();
            writeStream.Dispose();

            res.GetResponse().Close();//此句完成登录,无此句无法得到cookie

            res = (HttpWebRequest)HttpWebRequest.Create(new Uri(postUrl));//具体session才能访问的页
            res.CookieContainer = cookies;//设置cookies
            var resStream = new StreamReader(res.GetResponse().GetResponseStream());//取到返回值
            textBox1.Text = resStream.ReadToEnd();//显示返回值
            resStream.Close();
            resStream.Dispose();
            res.Abort();
        }


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年11月    »
12
3456789
10111213141516
17181920212223
24252627282930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864