模拟Http登录
2016-05-24 10:28
295 查看
<pre name="code" class="csharp"> class Program { private static CookieContainer m_Cookie = new CookieContainer(); static void Main(string[] args) { try { string url = "http://127.0.0.1:8001/Account/Login";//网址 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.UserAgent = @"MISE"; request.CookieContainer = m_Cookie; request.Timeout = 30000; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream receiveStream = response.GetResponseStream(); StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8); //获取要登录的页面内容 var strResult = readStream.ReadToEnd().ToString(); if (request.HaveResponse) { //要提交的数据 var startIndex = strResult.IndexOf(@"hidden") + 15; string token = strResult.Substring(startIndex, 108); var session = response.Cookies;// request.CookieContainer; string s = "UserName=18600000000&Password=000000&__RequestVerificationToken=" + token;//要提交的数据; byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(s); HttpWebRequest request22 = (HttpWebRequest)WebRequest.Create(url); request22.Method = "POST"; request22.UserAgent = @"MISE"; request22.ContentType = "application/x-www-form-urlencoded"; request22.CookieContainer = m_Cookie; request22.ContentLength = requestBytes.Length; Stream requestStream = request22.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Flush(); requestStream.Close(); System.Threading.Thread.Sleep(1000); HttpWebResponse res = (HttpWebResponse)request22.GetResponse(); StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8); string backstr = sr.ReadToEnd(); Console.WriteLine(backstr); sr.Close(); res.Close(); } } catch (Exception ex) { throw ex; } } }
相关文章推荐
- Java实现网络爬虫
- golang 的 http cookie 用法
- http://www.zhihu.com/question/24301047
- 以前在网络相关的公司学到的,记录一下,http协议和https协议的区别
- http协议的状态码
- HTTP协议头部与Keep-Alive模式详解
- HTTP协议详解
- HTTPS 网络安全传输协议下的访问
- Volley框架的基本解读(三)
- 网络多线程O.3 队列组的用法
- Python网络爬虫Scrapy框架研究 以及 代理设置
- HTTP请求方式GET和POST的区别
- PHP实现抓取HTTPS内容的方法和错误处理
- c#代码访问https服务器以及https的webservice
- .net 时间戳和日期互转 【转】http://www.cnblogs.com/zhuiyi/p/5307540.html
- Retrofit2 完全解析 探索与okhttp之间的关系
- WordPress HTTP500报错解决方案
- cmd中执行netsh wlan start hostednetwork 无法启动承载网络。 组或资源的状态不是执行请求操作的正确状态。
- TCP的流量控制
- HTTP与TCP/IP的区别