当 HTTPGET https://localhost/ 时绕过代理

Eri*_*ell 4 console http http-get service-worker asp.net-core

我有一个从 Visual studio 2019 (Ctrl+F5) 运行的 asp.net core 3.1 Web 服务器。它有一个 HTTP GET 端点,我可以在 VS Code 中使用 REST 客户端成功调用该端点:

GET https://localhost:5001/api/myResource
Run Code Online (Sandbox Code Playgroud)

然后我尝试开发一个从控制台运行的服务工作者(也是.net core 3.1),并且该调用是相同的资源。就像这样..

httpClient = new HttpClient();
var responseHTTP = await httpClient.GetAsync("https://localhost:5001/api/myResource");
Run Code Online (Sandbox Code Playgroud)

然后我得到的响应是来自我公司代理的错误消息(指出禁止访问 bla bla bla)以及实际发布的地址(响应内容的一部分):

尝试检索 URL 时:localhost.mycompany.com:5001

因此它添加了

mycompany.com

到我在中提供的地址httpClient.GetAsync()

我尝试在 Windows 设置中禁用代理(包括删除环境变量)并重新启动控制台和本地网络服务器。但它仍然通过代理(或者我从代理得到相同的禁止答案)。有没有办法绕过代理?我看过的所有问题和答案都是相反的,让 httpClient 使用代理。

Cai*_*ard 9

HttpClient如果您从系统设置中选择系统代理,您可以使用类似的方法来禁用系统代理:

var handler = new HttpClientHandler() { UseProxy = false }; 
httpClient = new HttpClient(handler);
Run Code Online (Sandbox Code Playgroud)