要实现自动登录功能,可以利用浏览器的 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,所以可以直接访问受保护的页面,实现自动登录功能。