[C#] HttpWebResponse Problem

08/05/2011 12:24 elementskate#1
Hallo liebe Epvpers!

Ich versuche mich nun schon seit geraumer Zeit mit meinem Programm auf [Only registered and activated users can see links. Click Here To Register...] einzuloggen.
Hier mein Code:
Code:
    ASCIIEncoding encode4 = new ASCIIEncoding();
                string postdata4 = "username=USER&password=PASS&use_secure=false";
                byte[] data4 = encode4.GetBytes(postdata4);

                HttpWebRequest request4 = (HttpWebRequest)HttpWebRequest.Create("https://www.minecraft.net/login.jsp");
                request4.Method = "POST";
                request4.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1";
            
                request4.Host ="www.minecraft.net";
                request4.CookieContainer = Cookies;
                request4.Referer = "http://www.minecraft.net/login.jsp";
                request4.ContentType = "application/x-www-form-urlencoded";
                request4.ContentLength = data4.Length;
               


                Stream stream4 = request4.GetRequestStream();
                stream4.Write(data4, 0, data4.Length);
                stream4.Close();

                HttpWebResponse response4 = (HttpWebResponse)request4.GetResponse();
                StreamReader sr15 = new StreamReader(stream4);
                string login = sr15.ReadToEnd();
                sr15.Close();
Allerdings kommt bei HttpWebResponse response4 = (HttpWebResponse)request4.GetResponse(); immer folgender Fehler:
Code:
Der Remoteserver hat einen Fehler zurückgegeben: (500) Interner Serverfehler.
Ich weiß auch nicht mehr weiter woran es liegen könnte. Hier ist der Mitschnitt von LiveHttpHeaders:
Code:
https://www.minecraft.net/login.jsp

POST /login.jsp HTTP/1.1
Host: www.minecraft.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://www.minecraft.net/login.jsp
Cookie: __utma=88036996.351386417.1312134572.1312477720.1312536325.11; __utmz=88036996.1312536325.11.11.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=minecraft; JSESSIONID=aaafOw1R-EJMpgkPVqzgt; AWSELB=83ED2BFF14201459A3DAE714D47319DD1A1673B0DFAEAC50C4DA31770FCD596EFCD0E750CAAF8B38D9203A46651F0EE6730AEAE51B3341117DEE5CE29A225E80A305A9A033; __utmb=88036996.24.10.1312536325; __utmc=88036996
Content-Type: application/x-www-form-urlencoded
Content-Length: 56
username=USER&password=PASS&use_secure=false
Wenn ich bei LiveHttpHeaders auf Wiederholen klicke loggt er sich ohne Probleme ein!
Ich hoffe ihr könnt mir bei meinem Problem helfen und mir sagen wo mein Fehler liegt.

mfg elementskate
08/05/2011 13:17 5769854332#2
https = http + ssl
Liegt's evtl daran?
08/05/2011 13:38 elementskate#3
Hmm das könnte sein, aber wie soll ich das in meinem Code verwirklichen?
08/05/2011 14:07 Bot_interesierter#4
Du solltest den Refer mit https angeben statt http.
Code:
 request4.Referer = "http://www.minecraft.net/login.jsp";
Hier setzt du den Refer auf http statt https, da ist es natürlich klar dass das Request ohne SSL ausgeführt wird.
08/05/2011 14:13 elementskate#5
Hab ich schon probiert und ausserdem ist der referer nur der Verweis der vorigen Seite, und nachdem die vorige Seite [Only registered and activated users can see links. Click Here To Register...] ist gehört das so

Edit: Ok wie ich jetzt gesehen habe kommt vor dem Login noch das:
Code:
http://ocsp.starfieldtech.com/

POST / HTTP/1.1
Host: ocsp.starfieldtech.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Content-Length: 105
Content-Type: application/ocsp-request
0g0e0C0A0?0	+
Ich schätze mal das ist das Sicherheitszertifikat oder so was in der Art.
Aber wie soll ich das am besten in meinen Code einbauen?
08/05/2011 19:35 Ronox#6
Keine direkte Lösung nur einen weg der mir oft geholfen hat,
Traffic per Wireshark mitschneiden, also einmal vom Webbrowser und einmal von dem Programm, diese Vergleichen und unterschiede heraussuchen.
Und Kontrolliere mal ob in deinem Cookie wirklich etwas drin steht.
Und änder das mal so ab:
Quote:
request4.CookieContainer = new CookieContainer;
request4.CookieContainer = Cookies;
08/05/2011 19:50 elementskate#7
Cookies hab ich weiter oben so deklariert:
Code:
CookieContainer Cookies = new CookieContainer();
Also versteh ich nicht wieso ich das ändern sollte.

Edit: Ich hab das Problem jetzt alleine gelöst