2010-01-28 21 views
6

Hotfile.com'a giriş yapmak için C# kullanmaya çalışıyorum. .NET HTTP POST Yöntemi - Çerezler sorunu

Şimdi bu hatayı alıyorum

Ben POST kullanarak giriş çalışırken:

gözükmüyor ilk büyük sorun bu hat Çözmedim 417 Hatası, üstesinden gelmek oldu çerezleri kabul etmek. .

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); 
: Çerezler Hotfile.com .. ben birkaç kez denedim

Yardım giriş için gerekli ve etrafında googled ve hala giriş yapamıyorum edilir Kodum budur

Doğal olarak, kullanıcı ve pas hesap değerlerinize sahip olur.

cevap

9

İşte senin için yazdığım bir çalışma örnek: İşe yaradı

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); 
} 
+0

!! Çok teşekkürler. Tam olarak neden çerez problemini atladığını anlamıyorum. Tekrar teşekkürler! –

+0

+1. IDisposable kullanımını da düzelttiğinize sevindim! –