所以,我一直在搜索网络,尝试了解如何使用C#编程方式登录网站。我不想使用Web客户端。我想使用类似HttpWebRequest和HttpWebResponse的东西,但我不知道这些类是如何工作的。
我猜我正在寻找有人能够解释它们的工作原理,并说明成功登录到WordPress、电子邮件帐户或任何需要填写用户名和密码表单的网站所需的步骤。
以下是我的其中一次尝试:
// 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.");
我不知道自己是否做对了,总是被返回到我尝试的网站的登录界面。我已经下载了Fiddler并能够获取一些有关发送到服务器的信息,但我感到完全迷失。如果有人能在这里提供一些帮助,我将不胜感激。