C#代理FiddlerCore4

可以使用 FiddlerCore4 

版本 4.6.2.0(在nuget网站下载

可以拦截http/https请求(https 需要安装证书

可以多级代理(在 FiddlerApplication_BeforeRequest 中设置   oSession["X-OverrideGateway"] = “IP:Port”

可以本地代理(全局代理

可以服务器代理 (非全局代理,监听指定的端口

 

使用示例:

 //启动Fiddler(代理端口,是否注册为系统代理,解密ssl,是否允许远程请求【作为服务器代理时传true】)

FiddlerApplication.Startup(1234, true, true, true);

ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true;
FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;

 

private static void FiddlerApplication_BeforeRequest(Session oSession)
{

 //处理拦截请求,之后继续向目标url 发送,然后传回响应内容

}

 

坑:

1.需要自己手动管理 session 手动 abort ,如果连接过多,后面请求进不来

2.需要自己手动释放内存,否则会内存泄露 (调用windows api SetProcessWorkingSetSize() 来释放内存

3.https证书这里有一些坑,每次启动程序都会创建新的证书的问题,解决方法:就是删除掉 CertMaker.dll, BCMakeCert.dll 这两个引用,项目中引用关系删除,然后bin文件夹中删除对应文件(https://blog.csdn.net/ReturningProdigal/article/details/108791520

4.如果本地使用服务器上的代理,需要在服务器代理程序安装证书后,把证书导出复制到本地进行安装

5.作为服务器代理时,FiddlerApplication.Startup 第四个参数要传true , 否则收不到请求

posted @ 2023-01-28 17:12  212的s  阅读(785)  评论(0编辑  收藏  举报