首页 > 代码库 > HttpWebRequest 保存Cookies,模拟Session登录
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(); }
HttpWebRequest 保存Cookies,模拟Session登录
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。