菜鸟求教高人:我用下面这段代码虚拟登陆,可是得不到登陆后的页面源代码,请帮忙看看是怎么回事,感激不尽! 出现的因素可能比较多,先找个监视工具,看下post的时候都有哪些数据,格式,一些设置等。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵 这个问题我原来也遇到过 登录网页需要传递cookies才能保持登录的状态 所以你要把cookies保存起来 我给你一点示例 private bool PostWebRequest() { CookieContainer cc = new CookieContainer(); //建立保存cookies的容器 string pos tData = "user=" + strUser + "&pass=" + strPsd; byte[] byteArray = Encoding.UTF8.GetBytes(postData); HttpWebRequest webRequest2 = (HttpWebRequest)WebRequest.Create(new Uri("/chk.asp")); webRequest2.CookieContainer = cc; //设置cookies webRequest2.Method = "POST"; webRequest2.ContentType = "application/x-www-form-urlencoded"; webRequest2.ContentLength = byteArray.Length; Stream newStream = webRequest2.GetRequestStream(); // Send the data. newStream.Write(byteArray, 0, byteArray.Length); //写入参数 newStream.Close(); HttpWebResponse response2 = (HttpWebResponse)webRequest2.GetResponse(); StreamReader sr2=new StreamReader(response2.GetResponseStream(), Encoding.Default); string text2 = sr2.ReadToEnd(); ...... }当然 你如果在打开其他页面的时候也要把这个cookies加上 这样就可以保持登录状态了 就好比登录论坛 请问如何用c#编写发送soap请求的客户端? C# 2个下拉列表合起来用 寻求思路及简单代码 mutex 不起作用的问题 求救!!! TypeLoadException问题 多层架构学习 SqlCommand 增加SqlDbType.Decimal参数问题 如何去掉扩展名,最简单方法 Winform中怎么设置系统鼠标图标 检索大容量数据库时,如何做一个线程,显示查询进度,请指教!! Reporting Services,这问题如何解决 Crystal Reports 9和.net framework 2.0/3.5是不是不兼容啊?
{
CookieContainer cc = new CookieContainer(); //建立保存cookies的容器
string pos tData = "user=" + strUser + "&pass=" + strPsd;
byte[] byteArray = Encoding.UTF8.GetBytes(postData); HttpWebRequest webRequest2 = (HttpWebRequest)WebRequest.Create(new Uri("/chk.asp"));
webRequest2.CookieContainer = cc; //设置cookies
webRequest2.Method = "POST";
webRequest2.ContentType = "application/x-www-form-urlencoded";
webRequest2.ContentLength = byteArray.Length;
Stream newStream = webRequest2.GetRequestStream();
// Send the data.
newStream.Write(byteArray, 0, byteArray.Length); //写入参数
newStream.Close(); HttpWebResponse response2 = (HttpWebResponse)webRequest2.GetResponse();
StreamReader sr2=new StreamReader(response2.GetResponseStream(), Encoding.Default);
string text2 = sr2.ReadToEnd();
......
}
当然 你如果在打开其他页面的时候也要把这个cookies加上 这样就可以保持登录状态了 就好比登录论坛