小弟最近再研究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. 37.分组聚合操作—其他metric

    课程大纲     要学其他的metric(count,avg,max,min,sum) count:bucket,terms,自动就会有一个doc_count,就相当于是count avg:avg a ...

  2. 发现:Click事件也能获取鼠标单击的坐标

    按照MSDN的说明以及平时的习惯,我们要获取鼠标单击时的相对坐标,都会使用MouseClick等事件,今天,偶然发现,原来Click事件也可以. /* 惊天地泣鬼神的考古业绩. * 原来Cilck事件 ...

  3. 【郑轻邀请赛 C】DOBRI

    [题目链接]:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2129 [题意] [题解] NMB 直接说i-1,i-2,i-3不就好了- [Numb ...

  4. Postman做http接口功能测试

    首先,做接口测试前要有明确的接口文档(e.g. http://test.nnzhp.cn/wiki/index.php?doc-view-59) ,假设已经在PC上安装好了Postman. 1. 普通 ...

  5. Pycharm 的基本操作

    下载:https://www.jetbrains.com/pycharm/ 安装:随意安装在那个目录都可以 注册:可以采用 激活码 或者激活服务器,并对应在选项下面填入激活码或者激活服务器URL即可. ...

  6. [BZOJ 4563]放棋子

    [BZOJ 4563]放棋子 题目 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子 ...

  7. poj 2553强连通+缩点

    /*先吐槽下,刚开始没看懂题,以为只能是一个连通图0T0 题意:给你一个有向图,求G图中从v可达的所有点w,也都可以达到v,这样的v称为sink.求这样的v. 解;求强连通+缩点.求所有出度为0的点即 ...

  8. [bzoj1007][HNOI2008]水平可见直线_单调栈

    水平可见直线 bzoj-1007 HNOI-2008 题目大意:给你n条直线,为你从上往下看能看见多少跳直线. 注释:能看见一条直线,当且仅当这条直线上存在一条长度>0的线段使得这条线段上方没有 ...

  9. poj 1256 Anagram—next_permutation的神奇应用

    题意:给你一条字符串,让你输出字符串中字符的全排列,输出的顺序要按它给的奇葩的字典序. 题解:要输出全排列,暴力dfs可以过,但要注意题目的字典序以及相同字符的情况.如果用next_permutati ...

  10. GDI+学习之------色彩与图像

    色彩 在GDI+中.色彩是通过Color类来描写叙述的.不是用RGB类.用RGB构造会出错.GDI+中的色彩信息值是由一个32位的数据来表示的,它包含8位alpha值和各8位的R.G.B值,对于alp ...