【问题标题】:How To Capture Data with FiddlerCore?如何使用 FiddlerCore 捕获数据?
【发布时间】:2012-12-05 00:40:17
【问题描述】:

我正在用 c# 开发一个程序,它允许我捕获 WebBrowser1 发出的请求。

我的问题是“请求数据”总是空的。我不明白我必须把“webBrowser1.Navigate”命令放在哪里。

目前我的代码如下。

private void button3_Click(object sender, EventArgs e)
{
    webBrowser1.ScriptErrorsSuppressed = true;
    WebProxy myProxy = new WebProxy();
    Uri newUri = new Uri("http://localhost:8888");
    myProxy.Address = newUri;

    Fiddler.FiddlerApplication.Startup(8888, false, false);

    List<Fiddler.Session> oAllSessions = new List<Fiddler.Session>();

    webBrowser1.Navigate("http://www.youtube.com/");
    while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
    {
        System.Windows.Forms.Application.DoEvents();
    }

    Fiddler.FiddlerApplication.BeforeRequest += delegate(Fiddler.Session oS)
    {
        Monitor.Enter(oAllSessions);
        oAllSessions.Add(oS);
        Monitor.Exit(oAllSessions);
    };

    var message = string.Join(Environment.NewLine, oAllSessions);
    MessageBox.Show(message);

    Fiddler.FiddlerApplication.Shutdown();

}

感谢您的帮助

【问题讨论】:

  • 您的具体问题是什么?
  • 嗨,我的问题是“请求数据”总是空的。我不明白我必须把“webBrowser1.Navigate”命令放在哪里。再次感谢

标签: c# get browser fiddler fiddlercore


【解决方案1】:

你指的是什么“请求数据”?

这里的核心问题是您使用 false 参数调用 Startup,这表明 Fiddler 根本没有成为任何进程的代理,所以您' 将永远不会看到任何数据,除非您直接向该代理实例发送 HTTP 请求。

如果您的目标是从该应用获取流量并且仅从该应用获取流量,请致电

URLMonInterop.SetProxyInProcess("127.0.0.1:8888", "&lt;-loopback&gt;");

在您启动代理实例之后。这会将当前进程的 WinINET 代理设置设置为指向您已启动的 FiddlerCore 实例。

【讨论】:

  • 现在可以使用了!非常感谢您的回答!这条线救救我! URLMonInterop.SetProxyInProcess("127.0.0.1:8888", "");
【解决方案2】:

我在猜测,但我认为您需要重新安排代码,以便在发出请求之前设置提琴手

Fiddler.FiddlerApplication.BeforeRequest += delegate(Fiddler.Session oS)
{
    Monitor.Enter(oAllSessions);
    oAllSessions.Add(oS);
    Monitor.Exit(oAllSessions);
};

webBrowser1.Navigate("http://www.youtube.com/");
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
    System.Windows.Forms.Application.DoEvents();
}

【讨论】:

  • 你好!感谢您的回复,但即使重新排列代码仍然无法正常工作,奇怪的是,如果我打开 fiddler2 有请求,但如果我将我的应用程序作为过滤器,fiddler2 也没有收到任何请求!再次感谢您!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-14
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多