如何用C#实现自动下载最新Google Chrome MSI安装包(无需打开浏览器)
实现C#自动下载最新版Google Chrome MSI安装包
核心思路
你提供的跳转链接会通过302重定向指向实际的MSI安装包地址,无需手动找固定链接,通过HTTP请求跟踪重定向即可获取真实下载地址,或直接让HttpClient自动处理重定向完成下载。
C#代码实现
方法1:先获取真实下载URL再下载
适合需要单独拿到下载链接的场景:
using System; using System.Net.Http; using System.Threading.Tasks; class ChromeDownloader { static async Task Main(string[] args) { string redirectUrl = "https://chromeenterprise.google/browser/download/thank-you/?platform=WIN64_MSI&channel=stable&usagestats=0"; using (HttpClient client = new HttpClient(new HttpClientHandler { AllowAutoRedirect = false })) { var headResponse = await client.SendAsync(new HttpRequestMessage(HttpMethod.Head, redirectUrl)); if (headResponse.StatusCode == System.Net.HttpStatusCode.Redirect || headResponse.StatusCode == System.Net.HttpStatusCode.TemporaryRedirect) { string realDownloadUrl = headResponse.Headers.Location.ToString(); Console.WriteLine($"真实下载链接:{realDownloadUrl}"); // 开始下载文件 var downloadResponse = await client.GetAsync(realDownloadUrl); downloadResponse.EnsureSuccessStatusCode(); await downloadResponse.Content.SaveToFileAsync("ChromeStable_x64.msi"); Console.WriteLine("下载完成"); } } } } // 扩展方法:将HttpContent保存到本地文件 public static class HttpContentHelpers { public static async Task SaveToFileAsync(this HttpContent content, string filePath) { using (var stream = await content.ReadAsStreamAsync()) using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create, System.IO.FileAccess.Write)) { await stream.CopyToAsync(fileStream); } } }
方法2:自动重定向直接下载
无需单独提取URL,简化代码直接完成下载:
using System; using System.Net.Http; using System.Threading.Tasks; class ChromeDownloader { static async Task Main(string[] args) { string redirectUrl = "https://chromeenterprise.google/browser/download/thank-you/?platform=WIN64_MSI&channel=stable&usagestats=0"; using (HttpClient client = new HttpClient()) { var response = await client.GetAsync(redirectUrl); response.EnsureSuccessStatusCode(); await response.Content.SaveToFileAsync("ChromeStable_x64.msi"); Console.WriteLine("Chrome MSI安装包下载完成"); } } } public static class HttpContentHelpers { public static async Task SaveToFileAsync(this HttpContent content, string filePath) { using (var stream = await content.ReadAsStreamAsync()) using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create, System.IO.FileAccess.Write)) { await stream.CopyToAsync(fileStream); } } }
注意事项
- 确保程序具备网络访问权限,目标地址未被防火墙或代理拦截
- 该方式会自动获取最新稳定版的下载链接,无需手动更新地址
- 可根据需求修改保存的文件名和路径
内容的提问来源于stack exchange,提问作者carlplusplus
相关产品推荐
相关产品推荐

