Tak więc, przeszukałem sieć próbując dowiedzieć się więcej o tym, jak logicznie logować się do stron internetowych programowo przy użyciu C#. Nie chcę używać klienta WWW. Myślę, że chcę użyć czegoś takiego jak HttpWebRequest i HttpWebResponse, ale nie mam pojęcia jak te klasy działają.Logowanie do witryny przy użyciu C# programowo
Podejrzewam, że szukam kogoś, kto wyjaśni, jak działają i jakie kroki należy wykonać, aby pomyślnie zalogować się do, na przykład, WordPress, konta e-mail lub dowolnej witryny, która wymaga wypełnienia formularza z nazwą użytkownika i hasło.
Oto jeden z moich prób:
// Declare variables
string url = textBoxGetSource.Text;
string username = textBoxUsername.Text;
string password = PasswordBoxPassword.Password;
// Values for site login fields - username and password html ID's
string loginUsernameID = textBoxUsernameID.Text;
string loginPasswordID = textBoxPasswordID.Text;
string loginSubmitID = textBoxSubmitID.Text;
// Connection parameters
string method = "POST";
string contentType = @"application/x-www-form-urlencoded";
string loginString = loginUsernameID + "=" + username + "&" + loginPasswordID + "=" + password + "&" + loginSubmitID;
CookieContainer cookieJar = new CookieContainer();
HttpWebRequest request;
request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = cookieJar;
request.Method = method;
request.ContentType = contentType;
request.KeepAlive = true;
using (Stream requestStream = request.GetRequestStream())
using (StreamWriter writer = new StreamWriter(requestStream))
{
writer.Write(loginString, username, password);
}
using (var responseStream = request.GetResponse().GetResponseStream())
using (var reader = new StreamReader(responseStream))
{
var result = reader.ReadToEnd();
Console.WriteLine(result);
richTextBoxSource.AppendText(result);
}
MessageBox.Show("Successfully logged in.");
Nie wiem, czy jestem na właściwej drodze, czy nie. W końcu wracam do ekranu logowania jakiejkolwiek strony, którą wypróbuję. Pobrałem Fiddlera i udało mi się zdobyć trochę informacji o tym, jakie informacje są wysyłane na serwer, ale czuję się kompletnie zagubiony. Gdyby ktokolwiek mógł rzucić tu trochę światła, byłbym bardzo wdzięczny.
Możliwy duplikat [C# Zaloguj się do witryny za pośrednictwem programu] (http://stackoverflow.com/questions/930807/c-sharp-login-to-website-via-program) – RyBolt