Fiddler没有通过代理捕获连接

时间:2014-07-03 00:40:57

标签: c# proxy fiddler

我有一个C#程序,通过一些外部代理建立了一些连接。

Fiddler无法捕获这些不使用fiddler作为代理的请求

有没有办法让这些连接首先以任何C#方式或小提琴设置方式通过fiddler进行?

1 个答案:

答案 0 :(得分:2)

您可以使用FiddlerCore并链接代理..

Proxy p = new Proxy(new List<string>() { "122.129.107.3:8080" }); //real proxies...

WebClient wc = new WebClient();
wc.Proxy = new WebProxy("127.0.0.1", 8888); //local proxy(fiddler core)
wc.Headers["User-Agent"] = "SO/1.0";
var html = wc.DownloadString("http://google.com");

public class Proxy
{
    List<string> _Proxies = null;
    public Proxy(List<string> proxies)
    {
        _Proxies = proxies;
        Fiddler.FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
        Fiddler.FiddlerApplication.Startup(8888, false, true);
    }

    static long _Sequence = 0;
    void FiddlerApplication_BeforeRequest(Fiddler.Session oSession)
    {
        var sequence = Interlocked.Increment(ref _Sequence);
        string proxy = _Proxies[(int)(sequence % _Proxies.Count)];

        oSession["x-OverrideGateway"] = proxy;

        Console.WriteLine(String.Format("Proxy[{0}]> {1}", proxy, oSession.host));
    }
}

只需将代理列表传递给此类即可。它将为每个请求使用不同的一个。您的客户端将仅使用此代理