关于c# winform使用FidderCore.dll 遇到的一些问题,请求支援
小弟最近再研究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 遇到的一些问题,请求支援的更多相关文章
- 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 ...
- 将Winform程序及dll打包成可执行的exe
使用场景 通常开发的Winform程序,引用了其他类库后,在输出目录下都会产生很多DLL文件,exe执行时必须依赖这些DLL.想要Winform程序只有一个可执行exe文件,又不想打包成安装包,就可以 ...
- winform把所有dll打包成一个exe
大家都知道做winform开发,是可以利用visual studio进行打包的,但是这种打包的方式需要双击安装,那么有没有什么方法,可以把winform程序打包成绿色版呢?当然,这里的“绿色版”也是相 ...
- Winform程序及dll打包成一个可执行的exe
使用场景 通常开发的Winform程序,引用了其他类库后,在输出目录下都会产生很多DLL文件,exe执行时必须依赖这些DLL.想要Winform程序只有一个可执行exe文件,又不想打包成安装包,就可以 ...
- Winform API "user32.dll"中的函数
命名空间:System.Runtime.InteropServices /// <summary> /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在G ...
- Winform 程序中dll程序集嵌入exe可执行文件
关于这方面,Google一下有很多方法,参考: http://blog.csdn.net/astonqa/article/details/7300856 但按照以上的方法我并没有成功,于是继续找到了一 ...
- c# winform 引用sqlite.dll 运行报错解决方法
错误信息 : 未能加载文件或程序集“System.Data.SQLite, Version=1.0.81.0, Culture=neutral, PublicKeyToken=db937bc2d44 ...
- winform利用itextsharp.dll实现图片文件转换PDF格式文件
1.利用itextsharp.dll实现单个图片文件转换为PDF格式文件, 可以使用以下类: void ConvertJPG2PDF(string jpgfile, string pdf) { var ...
- WPF程序将DLL嵌入到EXE的两种方法
WPF程序将DLL嵌入到EXE的两种方法 这一篇可以看作是<Visual Studio 版本转换工具WPF版开源了>的续,关于<Visual Studio 版本转换工具WPF版开源了 ...
随机推荐
- PAT 1091. Acute Stroke (bfs)
One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. Given the re ...
- 【codeforces 515D】Drazil and Tiles
[题目链接]:http://codeforces.com/contest/515/problem/D [题意] 给你一个n*m的格子; 然后让你用1*2的长方形去填格子的空缺; 如果有填满的方案且方案 ...
- 2017沈阳网络赛hdu6199 gems gems gems
gems gems gems Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) P ...
- 联赛前集训日记Day3
考试 竟然出了道莫比乌斯函数的应用?? 简直没法玩 刷题 莫比乌斯函数摆在面前,咋能很快改完啊 生活 GGGGGGGGGGG 自己浪过头了,开回家一周 这车翻得猝不及防,然而自己作的,自己受,只是给别 ...
- noip模拟赛 gcd
题目更正:输出的a<b. 分析:这是一道数学题,范围这么大肯定是有规律的,打个表可以发现f(a,b)=k,a+b最小的a,b是斐波那契数列的第k+1项和k+2项.矩阵快速幂搞一搞就好了. #in ...
- E - Period
For each prefix of a given string S with N characters (each character has an ASCII code between 97 a ...
- 络谷 P1363 幻想迷宫
P1363 幻想迷宫 题目描述 背景 Background (喵星人LHX和WD同心协力击退了汪星人的入侵,不幸的是,汪星人撤退之前给它们制造了一片幻象迷宫.) WD:呜呜,肿么办啊…… LHX:mo ...
- hibernate之关于一对一单向,双向关联映射
[hibernate]之关于一对一单向,双向关联映射 首先我们来看,Hibernate官方对于一对一单向关联的解释: 基于外键关联的单向一对一关联和单向多对一关联差点儿是一样的. 唯一的不同就是单向一 ...
- Python基础--正則表達式基本的语法以及re模块
正则是个非常牛逼的东西,python中当然也不会缺少. 所以今天的Python就跟大家一起讨论一下python中的re模块. re模块包括对正則表達式的支持. 什么是正则: 正則表達式是能够匹配文本片 ...
- framebuffer的入门介绍-实现程序分析【转】
本文转载自:http://blog.csdn.net/liuzijiang1123/article/details/46972723 如想想对lcd屏进行操作(例如在lcd屏幕上画线,或者显示视频数据 ...