You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2019 C# .NET Framework 4.6环境下WebClient无法下载api.github.com接口问题

问题根因

GitHub REST API对所有请求强制要求携带User-Agent请求头,无该头或者头内容为空的请求会被直接拦截返回错误,这是你请求api.github.com失败、但可以下载其他GitHub资源的核心原因(raw等静态资源服务没有该强制校验规则)。

修复后的代码
using System.Net;

// .NET Framework 4.6环境下建议仅保留受GitHub支持的TLS版本,SSL3、TLS1.0、TLS1.1已被GitHub弃用
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

WebClient wc = new WebClient();
// 必须添加User-Agent头,内容可自定义为你的应用名、仓库地址等任意非空字符串
wc.Headers.Add("User-Agent", "MyAppUpdateChecker/1.0");
wc.DownloadFile(new System.Uri("https://api.github.com/repos/[Username]/[Reponame]/releases/latest"), "name.json");
额外优化建议
  • 新开发功能建议优先使用HttpClient替代WebClient,WebClient在.NET平台已经被标记为过时类,HttpClient性能和可配置性更好,且默认兼容现代API请求规范
  • 若后续升级到更高版本.NET Framework或者.NET Core/.NET 5+,可以新增SecurityProtocolType.Tls13支持,进一步提升请求安全性
  • 公开仓库调用GitHub API无需认证,但未认证的请求有每小时60次的速率限制,如果你有高频调用需求,可以生成个人访问令牌(PAT)加入请求头提升限额

内容的提问来源于stack exchange,提问作者HimDek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:45:04