小弟最近再研究winform用fidder抓取包的过程。开始都很顺利,并且成功开启了代理网络。同时手机也设置代理,并且手机可以上网,而且电脑也能抓到手机的请求。

但是遇到两个问题。

1.,这里的关闭代理按钮,我已经设置了shutdown,但是实际上等我关闭这个代理,或者当我直接关闭窗口的时候,浏览器还是无法上网。这个时候重新打开软件开启代理就可以了。这个问题百度无果。

2.第二个问题有点特殊。就是我在抓一个app的请求数据。某个app我进入页面,如果直接通过Fidder工具。是可以抓到cookie,以及post数据的。如图中画圈的cs_session

但是当我透过winform的FidderCore.dll确无法获取这个cookie数据。我分别在三个地方设置了断点:BeforeRequest,BeforeResponse,AfterSessionComplete

百度有人oS.RequestHeaders["Cookie"];,但是调试过程中发现为空,而且分析了oSession的数据也没发现哪里有cookie,如下图

折腾一个下午了。成果就是程序可以跑起来代理,并且能抓到手机的请求数据,但是这两个问题实在是无能为了。还请打大家指教,不甚感激!!!!!

最终附上个人初步代码,还请大家指导。

 public partial class Form1 : Form
{
static Proxy oSecureEndpoint;
static string sSecureEndpointHostname = "localhost";
static int iSecureEndpointPort = ; public Form1()
{
InitializeComponent();
} private void btn_Click(object sender, EventArgs e)
{
string strCollected = string.Empty; MessageBox.Show(strCollected.ToString());
} private void button1_Click(object sender, EventArgs e)
{
if (!FiddlerApplication.IsStarted())
{
//设置别名
Fiddler.FiddlerApplication.SetAppDisplayName("FiddlerCoreDemoApp"); //启动方式
FiddlerCoreStartupFlags oFCSF = FiddlerCoreStartupFlags.Default; //定义http代理端口
int iPort = ;
FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
FiddlerApplication.BeforeResponse += FiddlerApplication_BeforeResponse;
FiddlerApplication.AfterSessionComplete += AfterSessionComplete;
//启动代理程序,开始监听http请求
//端口,是否使用windows系统代理(如果为true,系统所有的http访问都会使用该代理)我使用的是
Fiddler.FiddlerApplication.Startup(iPort, false, false, true); // 我们还将创建一个HTTPS监听器,当FiddlerCore被伪装成HTTPS服务器有用
// 而不是作为一个正常的CERN样式代理服务器。
oSecureEndpoint = FiddlerApplication.CreateProxyEndpoint(iSecureEndpointPort, true, sSecureEndpointHostname); this.textBox1.Text += DateTime.Now.ToString("HH:MM:ss") + " 开启代理\r\n";
}
else
{
MessageBox.Show("不能重复开启,正在抓取数据。");
}
} private void AfterSessionComplete(Session oSession)
{
if (oSession.fullUrl.Contains("creditcard"))
{
Console.WriteLine(oSession.url);
}
} private void FiddlerApplication_BeforeResponse(Session oSession)
{
if (oSession.fullUrl.Contains("creditcard"))
{
Console.WriteLine(oSession.url);
}
} private void FiddlerApplication_BeforeRequest(Session oSession)
{
if (oSession.fullUrl.Contains("creditcard") && !string.IsNullOrEmpty(oSession.oRequest["Cookie"]))
{
Console.WriteLine(oSession.url);
}
} private void button2_Click(object sender, EventArgs e)
{
this.textBox1.Text += DateTime.Now.ToString("HH:MM:ss") + " 关闭代理\r\n";
FiddlerApplication.Shutdown();
}
}

关于c# winform使用FidderCore.dll 遇到的一些问题,请求支援的更多相关文章

  1. Embed dll Files Within an exe (C# WinForms)—Winform 集成零散dll进exe的方法

    A while back I was working on a small C# WinForms application in Visual Studio 2008. For the sake of ...

  2. 将Winform程序及dll打包成可执行的exe

    使用场景 通常开发的Winform程序,引用了其他类库后,在输出目录下都会产生很多DLL文件,exe执行时必须依赖这些DLL.想要Winform程序只有一个可执行exe文件,又不想打包成安装包,就可以 ...

  3. winform把所有dll打包成一个exe

    大家都知道做winform开发,是可以利用visual studio进行打包的,但是这种打包的方式需要双击安装,那么有没有什么方法,可以把winform程序打包成绿色版呢?当然,这里的“绿色版”也是相 ...

  4. Winform程序及dll打包成一个可执行的exe

    使用场景 通常开发的Winform程序,引用了其他类库后,在输出目录下都会产生很多DLL文件,exe执行时必须依赖这些DLL.想要Winform程序只有一个可执行exe文件,又不想打包成安装包,就可以 ...

  5. Winform API "user32.dll"中的函数

    命名空间:System.Runtime.InteropServices /// <summary> /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在G ...

  6. Winform 程序中dll程序集嵌入exe可执行文件

    关于这方面,Google一下有很多方法,参考: http://blog.csdn.net/astonqa/article/details/7300856 但按照以上的方法我并没有成功,于是继续找到了一 ...

  7. c# winform 引用sqlite.dll 运行报错解决方法

    错误信息 :  未能加载文件或程序集“System.Data.SQLite, Version=1.0.81.0, Culture=neutral, PublicKeyToken=db937bc2d44 ...

  8. winform利用itextsharp.dll实现图片文件转换PDF格式文件

    1.利用itextsharp.dll实现单个图片文件转换为PDF格式文件, 可以使用以下类: void ConvertJPG2PDF(string jpgfile, string pdf) { var ...

  9. WPF程序将DLL嵌入到EXE的两种方法

    WPF程序将DLL嵌入到EXE的两种方法 这一篇可以看作是<Visual Studio 版本转换工具WPF版开源了>的续,关于<Visual Studio 版本转换工具WPF版开源了 ...

随机推荐

  1. VMware Workstation 15 安装教程

    注:操作系统必须是64位    软件:360软件管家获取 1.运行下载完成的Vmware Workstation虚拟机软件包. 虚拟机软件的安装向导初始界面 2.在虚拟机软件的安装向导界面单击“下一步 ...

  2. vue数据绑定源码

    思路分析 数据的双向绑定,就是数据变化了自动更新视图,视图变化了自动更新数据,实际上视图变化更新数据只要通过事件监听就可以实现了,并不是数据双向绑定的关键点.关键还是数据变化了驱动视图自动更新. 所有 ...

  3. 【模板】非旋转Treap

    Treap,也叫做树堆,是指有一个随机附加域满足堆的性质的二叉搜索树. 如果一棵二叉搜索树插入节点的顺序是随机的,那我们得到的二叉搜索树在大多数情况下是平衡的,期望高度是log(n). 但有些情况下我 ...

  4. 一个电商项目的Web服务化改造3:改进方案の规范和约定、单表、单一职责

         最近一直在做一个电商项目,需要把原有单系统架构的项目,改造成基于服务的架构,SOA.      有点挑战,做完了,会有很大进步. 上一篇,我们描述了原有项目中的问题.  或者说是,本篇的基本 ...

  5. Codeforces Round #417 (Div. 2)——ABCE

    题目链接 题面有点长需耐心读题. A.一个人行道上的人被撞有4种情况 1.所在车道有车驶出 2.右边车道有左转车 3.左边车道有右转车 4.对面车道有直行车 #include <bits/std ...

  6. Drop all tables in MySQL database

    Drop all tables in MySQL database Answer: MySQL does not have a command for removing all database ta ...

  7. sprintf_s函数用法

    函数功能:将数据格式化输出到字符串 函数原型: int sprintf_s( char *buffer, size_t sizeOfBuffer, const char *format [, argu ...

  8. 一个神奇的PHP框架:Phalcon 之初识

    前言 公司的APP响应速度比较慢,公司大神决定使用C语言编写的PHP框架Phalcon 代替原来的框架,响应速度有比较大的提升.以前只是听说过,没有深入的了解过.即然工作中有用到,便花点时间了解了下, ...

  9. AngularJS:日期转换字符

    JS有很多类库提供日期转换函数,AngularJS也不例外.可以通过$filter来完成转换,方法如下: $filter('date')(sourceDate, "yyyy/MM/dd&qu ...

  10. nginx启动访问

    修改配置文件后,查看配置是否ok 以下是有错误的 以下是ok的 nginx/sbin/nginx -t 启动查询: /usr/local/nginx/sbin/nginx -c /usr/local/ ...