我有一个控制台应用程序,该应用程序通过HTTP / HTTPS调用许多第三方服务,这些服务最初被编写为在.Net Framework下运行。 Fiddler可以与该版本的应用配合使用,捕获所有HTTP和HTTPS流量。
我将应用程序移植到.net Core 2.1,现在Fiddler无法捕获来自该应用程序的任何HTTP / HTTPS通信。
关于Fiddler(v5.0)为什么无法从.Net Core应用捕获流量的任何建议?
答案 0 :(得分:3)
在.NET Core 2.1中,默认提供程序已从WinHttpHandler更改为完全基于.NET网络堆栈构建的新SocketsHttpHandler。
https://github.com/dotnet/corefx/issues/28603表示Fiddler应该可以正常工作,因此请验证您是否拥有2.1的最新更新,如果仍然无法正常工作,请向github上的corefx报告问题。
答案 1 :(得分:0)
在我的办公环境中,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
}
);
这可靠地通过Fiddler隧道传输了来自Core的所有请求。