要實現自動登錄功能,可以利用瀏覽器的 Cookie 機制。以下是一個簡單的示例代碼:
using System;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
string url = "http://example.com/login";
string username = "your_username";
string password = "your_password";
HttpClientHandler handler = new HttpClientHandler();
handler.CookieContainer = new CookieContainer();
HttpClient client = new HttpClient(handler);
// 模擬登錄請求
var loginContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("username", username),
new KeyValuePair<string, string>("password", password)
});
var loginResponse = await client.PostAsync(url, loginContent);
loginResponse.EnsureSuccessStatusCode();
// 訪問需要登錄才能訪問的頁面
string protectedUrl = "http://example.com/protected_page";
var protectedResponse = await client.GetAsync(protectedUrl);
protectedResponse.EnsureSuccessStatusCode();
// 輸出頁面內容
string content = await protectedResponse.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}
在這個示例中,我們使用 HttpClient 發送帶有用戶名和密碼的 POST 請求來模擬登錄。登錄成功后,我們再使用 HttpClient 訪問受保護的頁面,這時會自動攜帶登錄過程中獲取到的 Cookie。
當你再次運行程序時,由于自動攜帶了 Cookie,所以可以直接訪問受保護的頁面,實現自動登錄功能。