加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何使用FiddlerCore捕获数据?

发布时间:2020-12-15 05:37:03 所属栏目:百科 来源:网络整理
导读:我正在用c#开发一个程序,它允许我捕获WebBrowser1发出的请求. 我的问题是“请求数据”始终为空.我不明白我在哪里放“webBrowser1.Navigate”命令. 现在我的代码如下. private void button3_Click(object sender,EventArgs e){ webBrowser1.ScriptErrorsSuppr
我正在用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();

}

谢谢您的帮助

解决方法

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

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

如果您的目标是仅从此应用和此应用捕获流量,请致电

URLMonInterop.SetProxyInProcess(“127.0.0.1:8888”,“< -loopback>”);

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读