HttpWebRequest mit https in C#
Diesem Stück code, das nicht funktioniert; es ist einloggen in die website, die mithilfe des https-Protokolls. Wie dieses problem zu lösen? Der code Stoppt bei GetRequestStream()
jederzeit und überall sagen, dass protocol violation exception unhandled..
string username = "user";
string password = "pass";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://moje.azet.sk/prihlasenie.phtml?KDE=www.azet.sk%2Findex.phtml%3F");
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)";
Console.WriteLine(request.GetRequestStream());
using (StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.ASCII))
{
writer.Write("nick=" + username + "&password=" + password);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//Retrieve your cookie that id's your session
//response.Cookies
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
Console.WriteLine(reader.ReadToEnd());
}
- Ich habe nicht Bearbeiten Privilegien, aber Sie brauchen, um zu verschleiern Benutzername und Kennwort-Variablen in deinem code-Beispiel. Ich habe gerade versucht auf der Seite einloggen und Sie haben mich in.
- Ersetzt Sie mit "user" und "pass"
- Sollten Sie auch Ihr Passwort ändern, auf der Website, da die Anmeldeinformationen sind noch in der edit-history zu dieser Frage.
- Thx ppl, aber das Konto wurde für test Zwecke - > ich habe nicht wirklich egal, wenn jemand sieht es 😉
- Es ist markdown für das, nur zwei backticks.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Set-request-Methode auf post, vor dem Aufruf GetRequestStream
wie
Meine Vermutung ist, dass das Problem, das Sie erleben, ist aufgrund der Tatsache (wie andere hingewiesen haben), dass du eine GET-Anforderung statt einer POST-Anforderung. Außerdem habe ich bemerkt, dass der eigentliche name für das Feld Passwort auf der Seite "heslo" und nicht "Passwort". Dieser Tippfehler wird nicht dazu führen, die web-server keine Antwort zurück, aber es wird dazu führen, dass andere Probleme, da der server ist auf der Suche nach, dass bestimmte Variablen-Namen zu sein, geschrieben mit der Kennwort-Wert.
Möchten Sie vielleicht auch, um herauszufinden, die Gesamt Länge auf, was du postest, vorher, und als die ContentLength der Anfrage. Sehen MSDN:
Hier ist was für mich funktioniert: