此處用 WinForm 模擬登錄 CSDN
查看登錄頁面源碼,可看到驗證碼的地址爲:
src="ShowExPwd.aspx?temp=' + (new Date().getTime().toString(36))
這是一個和客戶端的時間相關的一個temp參數值。經測試,實際登錄和該值無關。
現在的登錄簡單多了,主要代碼如下:2013年6月6日更新
private void btnLogin_Click(object sender, EventArgs e)
{
string userName = txtUser.Text; // 獲取用戶名
string userPwd = txtPwd.Text; // 獲取口令
string postData = "u=" + userName + "&p=" + userPwd + "&remember=1&t=log"; //&from=http://hi.csdn.net/&PrePage=&MailParameters=";
byte[] buffer = Encoding.Default.GetBytes(postData); // 要發送的數據
buffer = getBytes("https://passport.csdn.net/ajax/accounthandler.ashx", cc, buffer);
string html = Encoding.UTF8.GetString(buffer); // 獲取返回的頁面內容
if (html.IndexOf("\"status\":true,") > 0)
{
MessageBox.Show("你已成功登錄 CSDN");
}
else
{
MessageBox.Show("登錄 CSDN 失敗!");
}
}