控制台应用调用本地Web API返回未授权且请求URL异常
问题原因及解决方案
核心原因
- Cloudflare认证劫持:
cfauth.com是Cloudflare Access的跳转域名,你的本地请求被系统内的Cloudflare代理服务(比如WARP客户端、相关浏览器扩展)劫持了。这类服务默认可能会代理所有网络请求,包括本地localhost的请求,导致请求被强制重定向到Cloudflare的认证页面,而非你指定的本地API端口。 - 请求未抵达API:因为请求在发送到
localhost:8082之前就被劫持重定向,所以你的Web API完全没收到请求,断点自然不会触发,返回的Unauthorized状态码是Cloudflare认证页面的响应,并非你的API返回。
解决步骤
- 关闭或配置Cloudflare代理:
- 如果运行了Cloudflare WARP客户端,直接退出该程序,或者在设置里找到「排除列表」,将
http://localhost:8082/*添加进去,让代理跳过本地API请求。 - 若安装了Cloudflare相关浏览器扩展(如Cloudflare Access、WARP扩展),暂时禁用这些扩展再测试。
- 如果运行了Cloudflare WARP客户端,直接退出该程序,或者在设置里找到「排除列表」,将
- 修正代码语法错误:你代码里使用了中文全角引号(“”),这会导致
Uri解析异常,必须替换为英文半角引号("")。修正后的代码如下:
HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://localhost:8082/"); var response = client.GetAsync("api/UpdateMessage/?status=new").Result; Console.WriteLine(response.RequestMessage.RequestUri.ToString()); Console.WriteLine(response.StatusCode);
- 检查系统网络配置:确认系统DNS没有异常解析
localhost,同时检查系统全局代理设置,确保没有强制将本地请求路由到Cloudflare节点。
内容的提问来源于stack exchange,提问作者useruser00
相关产品推荐
相关产品推荐

