利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
2013-07-21 23:05
841 查看
利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
tring cookie = response.Headers.Get("Set-Cookie");
通常在响应的头信息里就包含了Cookie,它就是Set-Cookie的值。如果想要知道HTTP的头信息有哪些,可以在谷歌浏览器中按F12进行查看,但记得,要想捕捉这些信息,必须在未登录前就按F12,否则谷歌浏览器是不会跟踪这些信息的。
然后我们就可以利用该Cookie登录网站并且得到登录后的网站内容:
string html = getHtml(GetCookieName(cookie), GetCookieValue(cookie)); private string GetCookieValue(string cookie) { Regex regex = new Regex("=.*?;"); Match value = regex.Match(cookie); string cookieValue = value.Groups[0].Value; return cookieValue.Substring(1, cookieValue.Length - 2); } private string GetCookieName(string cookie) { Regex regex = new Regex("sulcmiswebpac.*?"); Match value = regex.Match(cookie); return value.Groups[0].Value; } private string getHtml(string name, string value) { CookieCollection cookies = new CookieCollection(); cookies.Add(new Cookie(name, value)); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://222.200.98.171:81/user/bookborrowed.aspx"); request.Method = "GET"; request.Headers.Add("Cookie", name + "=" + value); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream, Encoding.UTF8); return reader.ReadToEnd(); }
我们之前得到的cookie字符串中其实就是一个键值对字符串,我们还是需要根据正则表达式提取出cookie的name和value,然后我们定义一个CookieContainer,往里面添加我们捕捉到的Cookie,接着就是需要Cookie的网页发送一个带有该Cookie的HTTP请求。
方法很简单,只要合理的使用正则表达式,我们就可以方便的对网页进行处理,而不需要什么第三方的库。
每个程序员都需要学会自己造轮子而不是一味的追求轮子,就算是其他语言的轮子,我们依然可以用自己熟悉的语言实现出来,毕竟所有的语言背后的实现思想都是一样的,尤其是面向对象语言,它们都是相互借鉴的,交叉处实在是太多了,C#更是在参考java的基础上创造出来的,有什么理由是java可以C#不可以呢?(有是有,但我们可以模拟)
相关文章推荐
- 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
- 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
- C# 利用 HttpWebRequest 和 HttpWebResponse 模拟登录有验证码的网站
- C# 利用 HttpWebRequest 和 HttpWebResponse 模拟登录有验证码的网站
- C#利用HttpWebRequest、HttpWebResponse调用12306接口,实现登录、查票、买票。
- 利用HttpWebRequest和HttpWebResponse获取Cookie
- C# 利用 HttpWebRequest 和 HttpWebResponse 模拟登录有验证码的网站
- 使用HttpWebRequest和HttpWebResponse实现模拟登录需要登陆后才可以访问的页面
- C#如何HttpWebRequest模拟登陆,获取服务端返回Cookie以便登录请求后使用
- HttpWebRequest模拟登陆,存储Cookie以便登录请求后使用
- httpwebrequest 模拟登录 获取cookies 以前的代码,记录备忘!
- [转发]HttpWebRequest模拟登陆,存储Cookie以便登录请求后使用
- C#利用HttpWebRequest,Stream,HttpWebResponse,StreamReader获取post返回的数据
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- httpwebrequest 模拟登录 获取cookies 以前的代码,记录备忘!
- httpwebrequest 模拟登录 获取cookies 以前的代码,记录备忘!
- HttpWebRequest模拟登陆,存储Cookie以便登录请求后使用
- C#---HttpWebRequest+HttpWebResponse实现登录人人网
- C#使用HttpWebRequest与HttpWebResponse模拟用户登录
- C#使用HttpWebRequest与HttpWebResponse模拟用户登录