.NET Core(C#)使用Titanium.Web.Proxy實現Http(s)代理伺服器監控HTTP請求

2023-06-19 18:01:37

關於Titanium.Web.Proxy詳細資訊可以去這裡仔細看看,這裡只記錄簡單用法

安裝參照Titanium.Web.Proxy

NuGet直接獲取Titanium.Web.Proxy

使用

  • 設定

與其說是設定,不如就說這一部分就是未來你需要使用的部分,想知道具體每個部分是幹什麼的就去看原文連結全放過來太佔地方

var proxyServer = new ProxyServer();
proxyServer.CertificateManager.CertificateEngine = Titanium.Web.Proxy.Network.CertificateEngine.DefaultWindows; 
 proxyServer.CertificateManager.EnsureRootCertificate();
proxyServer.BeforeResponse += OnResponse;
proxyServer.ServerCertificateValidationCallback += OnCertificateValidation;
proxyServer.ClientCertificateSelectionCallback += OnCertificateSelection;
var explicitEndPoint = new ExplicitProxyEndPoint(IPAddress.Any, 8000, true){ };
explicitEndPoint.BeforeTunnelConnect += OnBeforeTunnelConnect;
proxyServer.AddEndPoint(explicitEndPoint);
proxyServer.Start();
proxyServer.SetAsSystemHttpProxy(explicitEndPoint);
proxyServer.SetAsSystemHttpsProxy(explicitEndPoint);

Console.Read();

最後的Console.Read();是一個等待函數,你可以寫一個其他函數代替或是直接不用,比如說一個滑鼠點選事件或是等待時間啥的。

這部分設定就寫進一個函數體中,到時想在哪裡用代理就呼叫這個函數便可。

  • 響應事件處理
private async Task OnBeforeTunnelConnectRequest(object sender, TunnelConnectSessionEventArgs e)
{
    await Task.Run(() =>
    {
     	
    });
}

這部分是接收到連結請求時需要做的事情就是個事件,想做什麼就寫在這個地方寫,沒有想做的就乾脆直接不要。

事件問題去網上自己去學