.NET HTTP POST方法 – Cookie问题

我正在尝试使用C#登录hotfile.com。 第一个大问题是克服417错误,这条线解决了它:

System.Net.ServicePointManager.Expect100Continue = false; 

现在,当我尝试使用POST登录时,我收到此错误:

您似乎不接受cookie。 需要Cookie才能登录。帮助

我已经尝试了好几次,然后用Google搜索,我仍然无法登录Hotfile.com ..我的代码是这样的:

 string response; byte[] buffer = Encoding.ASCII.GetBytes("user=XX&pass=XX"); CookieContainer cookies = new CookieContainer(); HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create("http://hotfile.com/login.php"); WebReq.Credentials = new NetworkCredential("XX", "XX"); WebReq.PreAuthenticate = true; WebReq.Pipelined = true; WebReq.CookieContainer = cookies; WebReq.KeepAlive = true; WebReq.Method = "POST"; WebReq.ContentType = "application/x-www-form-urlencoded"; WebReq.ContentLength = buffer.Length; WebReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1)"; Stream PostData = WebReq.GetRequestStream(); PostData.Write(buffer, 0, buffer.Length); PostData.Close(); HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse(); Stream Answer = WebResp.GetResponseStream(); StreamReader _Answer = new StreamReader(Answer); response = _Answer.ReadToEnd(); File.WriteAllText("dump.html", response); 

当然,用户和通行证将拥有您的帐户值。

这是我为你写的一个工作案例:

 var cookies = new CookieContainer(); ServicePointManager.Expect100Continue = false; var request = (HttpWebRequest)WebRequest.Create("http://www.hotfile.com/login.php"); request.CookieContainer = cookies; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; using (var requestStream = request.GetRequestStream()) using (var writer = new StreamWriter(requestStream)) { writer.Write("user=XX&pass=XX&returnto=/"); } using (var responseStream = request.GetResponse().GetResponseStream()) using (var reader = new StreamReader(responseStream)) { var result = reader.ReadToEnd(); Console.WriteLine(result); }