Also versuche ich mich gerade in meinem Konto auf einer Website mit WebRequest
. Ich habe darüber gelesen bis zu dem Punkt, wo ich das Gefühl habe, ich möchte ein Beispiel zum Lernen durch Versuch und Irrtum verwenden.Remote-Server-Fehler beim Einloggen in eine Website mit WebRequest
Dies ist das Beispiel, das ich Login to website, via C#
So bin mit, wenn ich versuche meinen Code auszuführen es eine nicht behandelte Ausnahme zurückkehrt und seine dieses
System.Net.WebException: 'The remote server returned an error: (404) Not Found.'
Ich habe versucht, durch den Code schrittweise und ich denke, Es könnte sein, dass es versucht irgendwo zu POSTIEREN, wo es nicht möglich ist. Ich wollte das beheben, bevor ich auf eine Bestätigung, dass es erfolgreich angemeldet ist, gehen. Ich habe den Benutzernamen und das Passwort für diese Frage in Dummy-Text geändert.
Was habe ich hier falsch gemacht und was ist der logischste Weg, dieses Problem zu beheben? Vielen Dank im Voraus.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
string formUrl = "https://secure.runescape.com/m=weblogin/login.ws"; // NOTE: This is the URL the form POSTs to, not the URL of the form (you can find this in the "action" attribute of the HTML's form tag
string formParams = string.Format("login-username={0}&login-password={1}", "myUsername", "password");
string cookieHeader;
WebRequest req = WebRequest.Create(formUrl);
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(formParams);
req.ContentLength = bytes.Length;
using (Stream os = req.GetRequestStream())
{
os.Write(bytes, 0, bytes.Length);
}
WebResponse resp = req.GetResponse();
cookieHeader = resp.Headers["Set-cookie"];
Vielen Dank für das Kommentieren des Codes aswell, es wird es 100x einfacher für mich zu lernen. Was ich jetzt denke ist, dass ich das resp verwenden kann, um zu überprüfen, ob es etwas enthält, das erfolgreich in ro etwas eingeloggt ist. –
Sie sagten, dass dies einen Erfolg für Sie zurückgegeben hat? Ich habe den Code mehrere Male durchgegangen, habe versucht, ein paar Dinge zu ändern, und er gibt immer noch einen "falschen Namen oder ein falsches Passwort" zurück, obwohl seine 100% richtig sind, irgendwelche Gedanken? –
Ich habe keinen gültigen Benutzernamen/Passwort, also habe ich das nicht überprüft. Ich habe deinen anfänglichen Fehler behoben. Der Rest des Scrapings bleibt Ihnen überlassen, aber wenn Sie die Dev-Konsole in Chrome öffnen, können Sie verfolgen, was im Browser passiert, und dann müssen Sie dies mit WebRequests nachahmen. Nicht einfach, aber machbar. – rene