Heim >Backend-Entwicklung >C++ >Wie melde ich mich programmgesteuert bei einer Website mit C# an?
Problem: Mein Web Scraper benötigt einen angemeldeten Benutzer, um auf bestimmten Quellcode auf der Website zuzugreifen. Wie kann ich die Anmeldefunktion in meinem Programm implementieren, um diese Einschränkung zu umgehen?
Antwort: Um sich bei der angegebenen Website (mmoinn.com/index.do?PageModule=UsersLogin) anzumelden, können Sie die folgenden Schritte ausführen:
1. Senden Sie eine POST-Anfrage an das Anmeldeformular
Formatieren Sie Ihre Anmeldedaten im Formular POST:
<code class="language-csharp">string formUrl = "http://www.mmoinn.com/index.do?PageModule=UsersAction&Action=UsersLogin"; string formParams = string.Format("email_address={0}&password={1}", "您的邮箱地址", "您的密码"); 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(); string cookieHeader = resp.Headers["Set-cookie"];</code>
2. Rufen Sie die Anmeldeseite auf
Erstellen Sie eine GET-Anfrage an die gewünschte Seite, die den Cookie-Header enthält, den Sie aus dem Anmeldeformular abgerufen haben:
<code class="language-csharp">string getUrl = "登录后页面的URL"; WebRequest getRequest = WebRequest.Create(getUrl); getRequest.Headers.Add("Cookie", cookieHeader); WebResponse getResponse = getRequest.GetResponse(); using (StreamReader sr = new StreamReader(getResponse.GetResponseStream())) { string pageSource = sr.ReadToEnd(); }</code>
Zusätzliche Hinweise:
Wenn Sie die Antwort des Login-POST überprüfen möchten, können Sie die folgenden Codezeilen hinzufügen:
<code class="language-csharp">using (StreamReader sr = new StreamReader(resp.GetResponseStream())) { string pageSource = sr.ReadToEnd(); }</code>
Überprüfen Sie die Zeichenfolge „pageSource“, um die Antwort des Servers zu überprüfen.
Das obige ist der detaillierte Inhalt vonWie melde ich mich programmgesteuert bei einer Website mit C# an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!