Fiddler简介
Fiddler 是强大的抓包工具,它的原理是以 web 代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为 8888,我们也可以通过设置进行修改。代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。
Fiddler工作流程
Fiddler安装和配置
链接:Fiddler百度云下载链接
提取码:9u9i
配置信息
打开Fiddler,点击菜单栏的TOOLS,选择Options,配置里面的https一栏,如图:
然后配置Connections一栏,如图:
手机模拟器配置
这里手机模拟器就不介绍安装了,很简单。
直接介绍如何配置,这里以夜神模拟器为例
进入模拟器后,打开设置,打开WLAN,里面有一个WiredSSID(模拟器不同名字也不一样,但刚装的模拟器一般就一个,这个需要大家自己来识别一下),然后点击WiredSSID不松手,点击修改网络,点击高级选项,然后开始配置
- 代理改为手动,填写代理服务器主机名(本机的ip)和端口号(Fiddler的端口号)
- 点击浏览器,输入网址:网址是上面配置的本机ip+端口号
- 在浏览器界面点击后面的下载Fiddler根证书
- 为证书命名,这个没有要求,随意就好,不过最好还是见名知意,养成好习惯
- 确定后需要设置开机密码,按要求设置即可
下载根证书
Fiddler捕获json数据
Fiddler需要做的配置
- 这里需要我们打开菜单栏的另一个选项Rules下面的Customize Rules
- 找到一个名字叫做static function OnBeforeResponse(oSession: Session)的函数,它的作用是在响应之前要做的事
- 找到后注释它也可以删掉它,注释需要用‘//’来注释
- 然后重写这个函数
# 在响应之前截获json文件,然后保存到本地,就可以通过读取本地文件,然后获取视频的URL,然后下载
static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
var sw : System.IO.StreamWriter;
# 需要请求的URL,也可以填写URL中不发生变化的部分,类似模糊查询的样子,这样可以将符合条件的json文件都捕获到本地
if (oSession.uriContains("要访问的URL")){
var strBody=oSession.GetResponseBodyAsString();
var sps = oSession.PathAndQuery.slice(40,);
# alert需要注释掉,否则程序运行一次就会出现弹窗,然后程序就不会往下继续执行了
// FiddlerObject.alert(sps)
# 这里sps是截获的json文件名,前面的路径,将它存放在某个文件夹下,最好不要有中文路径
# 注意:这里边的路径中的斜杠与windows中的斜杠是相反的,不然容易报错
var filename = "要保存的路径(最后以/结尾)" + sps + ".json";
var curDate = new Date();
//var sw : System.IO.StreamWriter;
if (System.IO.File.Exists(filename)){
sw = System.IO.File.AppendText(filename);
sw.Write(strBody);
}
else{
sw = System.IO.File.CreateText(filename);
sw.Write(strBody);
}
sw.Close();
sw.Dispose();
}
}
模拟器需要做的配置
- 找到模拟器的操作录制选项,一般都会在菜单栏中,如图:
- 将要进行的操作录制一遍,然后配置操作助手
- 这里根据自己的需求进行选择,然后打开需要请求的软件或者网站,运行操作操作助手即可,这时候Fiddler就可以捕获到响应的文件了,下面就可以写代码读取文件获取自己想要的东西了。