Jps*_*psy 10
在我的办公环境中,Fiddler 仍然没有拦截 .NET Core 2.2 针对外部资源发出的请求。我想这是由于我们的本地代理设置。
我的解决方法是通过将 Fiddler 显式定义为 HttpClient 类使用的代理来捕获来自 .NET Core 2.2 的请求:
var httpClient = new HttpClient(
handler: new HttpClientHandler
{
// 8888 = Fiddler standard port
Proxy = new WebProxy(new Uri("http://localhost:8888")),
UseProxy = true
}
);
Run Code Online (Sandbox Code Playgroud)
这可靠地将来自 Core 的所有请求通过 Fiddler 进行隧道传输。
在 .NET Core 2.1 中,默认提供程序从 WinHttpHandler 更改为新的 SocketsHttpHandler,完全基于 .NET 网络堆栈构建。
https://github.com/dotnet/corefx/issues/28603表示 Fiddler 预计可以工作,因此请确认您拥有 2.1 的最新更新,如果仍然无法正常工作,请在 github 上向 corefx 报告问题。
小补充。如果将HttpClientFactory与 DI 一起使用,则可以这样设置代理
services.AddHttpClient<ISomeService, SomeService>()
.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler()
{
Proxy = new WebProxy(new Uri("http://localhost:8888")),
UseProxy = true
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5717 次 |
| 最近记录: |