请大家帮忙看看...谢谢

屌丝女士111 2009-08-20 04:20:57
/// <summary>
/// 实现登录
/// </summary>
/// <param name="targetURL">请求的路径,必须是实现登录的路径(*)</param>
/// <param name="cc">用于维持cookies Or Session</param>
/// <param name="param">Post提交的信息(用户名,密码)</param>
/// <returns>html page</returns>
public static CookieContainer cc = new CookieContainer();//维持cookie或Session
public static string PostAndGetHTML(string targetURL, Hashtable param)
{

//formData用于保存提交的信息
string formData = "";
foreach (DictionaryEntry de in param)
{
formData += de.Key.ToString() + "=" + de.Value.ToString() + "&";
}

if (formData.Length > 0)
formData = formData.Substring(0, formData.Length - 1); //去除最后一个 '&'

//把提交的信息转码(post提交必须转码)
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(formData);

//开始创建请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(targetURL);
request.Method = "POST"; //提交方式:post
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.1124)";
request.AllowAutoRedirect = true;
request.KeepAlive = true;

Stream newStream = request.GetRequestStream();
newStream.Write(data, 0, data.Length);//将请求的信息写入request
newStream.Close();
request.CookieContainer = cc;

//向服务器发送请求
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

//获得Cookie 保存到Appliction中
string cookieHeader = request.CookieContainer.GetCookieHeader(new Uri(targetURL));
HttpContext.Current.Application.Lock();
HttpContext.Current.Application["cookieHeader"] = cookieHeader;
HttpContext.Current.Application.UnLock();

Stream s = response.GetResponseStream();

StreamReader sr = new StreamReader(s, Encoding.UTF8);
string strResult = sr.ReadToEnd();

return "OK";
}

为什么我保存了clookie 在访问其它页面还是没有登陆上?这是为什么? 因为我得到了验证码,所以我是这样调用的


Hashtable hs = new Hashtable();
hs.Add("Password", txtPassword.Text);
hs.Add("VCode", Vcode.Text);
hs.Add("UserName", txtName.Text);

string PostAndGetHTML("登陆的地址", hs)


返回的还是登陆页面。还有返回登陆超时的提示?请大家发表下自己的意见,思路也行
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tulong403 2009-09-10
  • 打赏
  • 举报
回复
最终还是解决了,呵呵
yylovelij 2009-09-10
  • 打赏
  • 举报
回复
页面抓取的问题啊。
我真的不是蛮懂的。
要是有哪个朋友知道的,就帮忙解决下啊。不甚感激!!!!
嘿嘿~~~~
randomfeel 2009-08-25
  • 打赏
  • 举报
回复
帮不了你

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧