![](/img/trans.png)
[英]Fiddler Not Capturing Traffic from my C# Application in Windows 8
[英]Fiddler not capturing traffic from .Net Core
我有一個控制台應用程序,它通過最初編寫在 .Net Framework 下運行的 HTTP/HTTPS 調用許多 3rd 方服務。 Fiddler 適用於該版本的應用程序,捕獲所有 HTTP 和 HTTPS 流量。
我將應用程序移植到 .net Core 2.1,現在 Fiddler 不會從應用程序捕獲任何 HTTP/HTTPS 流量。
關於為什么 Fiddler (v5.0) 無法從 .Net Core 應用程序捕獲流量的任何建議?
在我的辦公環境中,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
}
);
這可靠地將來自 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
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.