Android 使用Fiddler抓取Https请求

在开发过程中我们一定碰到过需要查看从服务器请求下来的信息是什么样的情况,一般使用log就可以查看,但是有时候当请求下来的信息特别多的时候则不怎么好看了;如果是一般的get请求,只要结合谷歌浏览器的一个数据格式化插件也可以看的很happy,但是万一是post请求呢?特别还是https类型的请求呢?
这就是今天要说的一个抓包工具Fiddler了,Fiddler默认是抓取http类型的接口,而想要查看https类型的接口就需要安装Fiddler证书。接下来一步步来看:

操作步骤


一、前提

本文是在Windows 7 环境下进行,并且需要电脑和手机处于同一局域网。如果是台式机的朋友可以使用无线网卡;当然使用模拟器也可以。

二、下载安装Fiddler

1、首先安装Fiddler较新的版本,这里不建议安装老的版本,因为可能会出问题,下载传送门:Fiddler:http://www.telerik.com/fiddler

2、安装直接默认就行,安装完后打开Fiddler,点击工具栏的Tools -> Telerik Fiddler Options。选中HTTPS 勾选如图:


Android 使用Fiddler抓取Https请求_第1张图片

中途会弹出安全方面的弹窗直接无视就行,毕竟我们本来干的就不是什么正常的事。

3、接着生成证书,还是HTTPS 里面如上图,点击右边的Actions选择Export Root Certificate to Desktop。意思是导出证书并存至桌面。记住位置一会会用到。如图:


Android 使用Fiddler抓取Https请求_第2张图片

4、切换到Connections栏,就在HTTPS旁边,勾选如图:


Android 使用Fiddler抓取Https请求_第3张图片

这里端口号8888可以自己指定,这里我们保持默认就行。设置好后会提示重新启动Fiddler,如果没有提示我们也重新启动一下。

好了客户端安装完了,接下来配置手机端。

三、手机配置

1、首先使用ipconfig /all命令获取电脑的ip地址(这里我的是172.20.1.67):


Android 使用Fiddler抓取Https请求_第4张图片

2、然后在手机wifi高级选项里填上你的代理ip及端口8888:


Android 使用Fiddler抓取Https请求_第5张图片

最后就是在手机端安装证书了。

四、安装证书

证书安装有两种方式:
方式(1):
1) 找到先前保存至桌面的证书,然后拷贝到手机sd目录:
ps:这里楼主的手机电脑无法访问到sd卡很是蛋疼~~~,于是我是通过qq传送的。。。。


Android 使用Fiddler抓取Https请求_第6张图片

2) 点击设置——>安全——>从设备存储空间安装——>从sd卡中找到证书,点击安装即可(直接点击是无法安装的,不信你可以试试)。安装后会让你设置锁屏,然后取个名字就完事了。


Android 使用Fiddler抓取Https请求_第7张图片

Android 使用Fiddler抓取Https请求_第8张图片

Android 使用Fiddler抓取Https请求_第9张图片

方式(2):
手机浏览器访问 172.20.1.67:8888 下载 (这里的IP地址请用步骤三中你自己的IP,如果你填我的看我打不死你)


Android 使用Fiddler抓取Https请求_第10张图片

好了,至此配置方面就完事了,接着就可以开心的拦截https请求了。
ps:如果有拦截还是没有成功的情况请检查下上面的配置选项,因为楼主遇到过选项重置的情况,再就是重新安装一遍证书。

五、拦截https

这时候请求一条https数据,然后在Fiddler中查看信息:


Android 使用Fiddler抓取Https请求_第11张图片

如图可以看见有A、B两个区域:

A区域主要是显示当前设备请求过来的链接信息:

栏目 解释
#
Result 请求返回码
Protocol 协议类型
Host 域名
URL 请求服务器资源路径path
Body 请求体数据大小

“#”代表的是相应的请求类型,这里在网上找了一张图,可能会有图标的变化,但大致能理解:


Android 使用Fiddler抓取Https请求_第12张图片

在A区域选中一条请求对应B区域会显示一些我们能进行的操作,这里主要了解下Inspectors、Filters:

(1)Inspectors
分为上下两个显示部分,上半部分显示的是请求头参数部分,下半部分是响应体部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合HTTP标准的请求和响应头。Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息。JSON能查看格式化好了的json类型数据。


Android 使用Fiddler抓取Https请求_第13张图片

如果发现Textview显示乱码的话,切换到Transformer 取消Chunked Transfer-Encoding勾选,选择 None即可。

这里还有一点:如果嫌这个界面显示不好看,Fiddler也为我们提供了简化的独立界面,在A区域中选中一条请求右键选择inspect in New Window… 即可:


Android 使用Fiddler抓取Https请求_第14张图片

(2)Filters
跟着一步步做下来的同学肯定会诧异:为啥我的A区域显示特别乱,各种乱七八糟的请求都有,而楼主的是那么的干净丝滑~~~。其实这里就是通过配置Filters的过滤规则如下图示:

Android 使用Fiddler抓取Https请求_第15张图片

首先选中Use Filters,Hosts里面有两个下拉选框,第一个是选择过滤内网和外网;第二个选择过滤条件,这里选择Show only the following Hosts (只显示以下允许的域名)。最后点击右侧的Actions按钮Run Filterset now 即可。


好了,以上两个是我觉得平时用的会比较多的,其他有兴趣的朋友可以看看官方文档Fiddler文档-http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/InstallFiddler

你可能感兴趣的:(技术操作,实用)