简述:

在开发android app的时候,会涉及到与后端的交互,比如在触发事件后,后台有没有返回数据,向后台提交数据有没有成功。
举个例子:

测试登陆app界面的时候。输入用户名与密码。提交的时候,就需要向后端请求结果,后端会根据用户名和密码去查询数据库,如果正确,就返回一个true,就可以正确跳转到下一个activity.如果为false,就向用户显示密码或用户名错误。

在这个过程,就需要知道,点击按钮的时,手机app是否向后端发送了数据,发送数据成功,后端有没有回传一条数据,此时就需要用到抓包工具。
这里将介绍Fiddler抓包工具。

Fiddler可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全



1、下载安装 Fiddler


1 > 官网下载地址:Fiddler

2 > 百度搜索Fiddler下载

3 > 下载完成后,进行傻瓜式安装便可


2、配置 Fiddler电脑端


Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据。

Fiddler通过伪造CA证书来欺骗浏览器和服务器。

1 > 启动Fiddler,开始设置

点击“Tools” -> “Fiddler Options”-> “HTTP

选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求


Fiddler抓包(Android app)


2 >点击“Tools” -> “Fiddler Options” -> “Connections

选中"Allow remote computers to connect".  是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来


Fiddler抓包(Android app)


记住端口号是:8888

电脑端配置完毕,重启Fiddler


3、配置 Android手机端


1 > 获取PC端IP地址,输入“ipconfig”回车即可。本人电脑是双IP,这里取其中一个IP:192.168.211.84


Fiddler抓包(Android app)


这时便获得PC的IP和端口了

2 > 确定手机端与电脑端必须连接在同一个局域网下,即手机与电脑须同时连接一个路由器。

进入手机的“设置”->“WLAN”->选择连接到的无线网,长按弹出选项框,选择修改网络配置。

选择显示高级选项,将代理设置成手动,将上面获取到的ip地址端口号填入,点击确定。


Fiddler抓包(Android app)



4、下载Fiddler的安全证书


在Android手机的浏览器输入:代理服务器主机名:代理服务器端口,这里是http://192.168.211.84:8888, 点"FiddlerRoot certificate" 然后安装证书,如图:


Fiddler抓包(Android app)



现在你可以在fiddler上对手机app进行抓包

此时你会发现fiddler抓取的数据包包括了电脑端和手机端的,而手机端的又包括了不同app的数据包。此时就需要过滤了。

稍后,会详细介绍如何过滤。


5、Fiddler字段说明


Fiddler想要抓到数据包,要确保Capture Traffic是开启,在File –> “Capture Traffic。开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭/开启抓包功能。


Fiddler抓包(Android app)


Fiddler开始工作了,抓到的数据包就会显示在列表里面,下面总结了这些都是什么意思:


Fiddler抓包(Android app)



名称

含义

#

抓取HTTP Request的顺序,从1开始,以此递增

Result

HTTP状态码

Protocol

请求使用的协议,如HTTP/HTTPS/FTP等

Host

请求地址的主机名

URL

请求资源的位置

Body

该请求的大小

Caching

请求的缓存过期时间或者缓存控制值

Content-Type

请求响应的类型

Process

发送此请求的进程:进程ID

Comments

允许用户为此回话添加备注

Custom

允许用户设置自定义值



图标

含义

Fiddler抓包(Android app)

请求已经发往服务器

Fiddler抓包(Android app)

已从服务器下载响应结果

Fiddler抓包(Android app)

请求从断点处暂停

Fiddler抓包(Android app)

响应从断点处暂停

Fiddler抓包(Android app)

请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body)

Fiddler抓包(Android app)

请求使用 HTTP 的 POST 方法

Fiddler抓包(Android app)

请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道,Fiddler抓包(Android app)

Fiddler抓包(Android app)

响应是 HTML 格式,Fiddler抓包(Android app)

Fiddler抓包(Android app)

响应是一张图片,Fiddler抓包(Android app)

Fiddler抓包(Android app)

响应是脚本格式,Fiddler抓包(Android app)

Fiddler抓包(Android app)

响应是 CSS 格式,Fiddler抓包(Android app)

Fiddler抓包(Android app)

响应是 XML 格式,Fiddler抓包(Android app)

Fiddler抓包(Android app)

响应是 JSON 格式

Fiddler抓包(Android app)

响应是一个音频文件

Fiddler抓包(Android app)

响应是一个视频文件

Fiddler抓包(Android app)

响应是一个 SilverLight

Fiddler抓包(Android app)

响应是一个 FLASH

Fiddler抓包(Android app)

响应是一个字体

Fiddler抓包(Android app)

普通响应成功,Fiddler抓包(Android app)

Fiddler抓包(Android app)

响应是 HTTP/300、301、302、303 或 307 重定向

Fiddler抓包(Android app)

响应是 HTTP/304(无变更):使用缓存文件

Fiddler抓包(Android app)

响应需要客户端证书验证

Fiddler抓包(Android app)

服务端错误

Fiddler抓包(Android app)

会话被客户端、Fiddler 或者服务端终止,Fiddler抓包(Android app)


  


6、Statistics 请求的性能数据分析


随意点击一个请求,就可以看到Statistics关于HTTP请求的性能以及数据分析了



Fiddler抓包(Android app)


7、Inspectors 查看数据内容


Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容。


Fiddler抓包(Android app)



8、AutoResponder 允许拦截指定规则的请求


AutoResponder允许你拦截指定规则的求情,并返回本地资源或Fiddler资源,从而代替服务器响应。

1 > 字符串匹配(默认)

只要包含指定字符串(不区分大小写),全部认为是匹配。


字符串匹配(baidu) 是否匹配
http://www.baidu.com 匹配
http://pan.baidu.com 匹配
http://tieba.baidu.com 匹配


2 > 正则表达式匹配

以“regex:”开头,使用正则表达式来匹配,这个是区分大小写


字符串匹配(regex:.+.(jpg | gif | bmp ) $) 是否匹配
http://bbs.fishc.com/Path1/query=foo.bmp&bar 不匹配
http://bbs.fishc.com/Path1/query=example.gif 匹配
http://bbs.fishc.com/Path1/query=example.bmp 匹配
http://bbs.fishc.com/Path1/query=example.Gif 不匹配



9、Composer 自定义请求发送服务器


Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求
Parsed模式下你只需要提供简单的URLS地址即可(如下图,也可以在RequestBody定制一些属性,如模拟浏览器User-Agent)


10、Filters 请求过滤规则


Fiters是过滤请求用的,左边的窗口不断的更新,当你想看你系统的请求的时候,你刷新一下浏览器,一大片不知道哪来请求,看着碍眼,它还一直刷新你的屏幕。这个时候通过过滤规则来过滤掉那些不想看到的请求。

1 > 勾选左上角的Use Filters开启过滤器,这里有两个最常用的过滤条件:Zone和Host

Zone 指定只显示内网(Intranet)或互联网(Internet)的内容。

Host 指定显示某个域名下的会话


2  >例如,前面提到的想获取手机App的的包

在"show only if URL contains"里面输入你开发app与后端请求数据时后端的ip地址和端口号。此时就可以得到你想要的包了。


Fiddler抓包(Android app)


11、Timeline 请求响应时间


在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间


Fiddler抓包(Android app)


12、Fiddler 内置命令与断点


FIddler断点功能就是将请求截获下来,但是不发送,这个时候你可以干很多事情,比如说,把包改了,再发送给服务器君。


Fiddler抓包(Android app)




参考:

Fiddler抓包工具总结



相关文章:

  • 2022-01-19
  • 2021-04-09
  • 2021-10-18
  • 2021-06-14
  • 2021-12-08
  • 2022-01-17
  • 2021-12-04
猜你喜欢
  • 2021-04-23
  • 2021-06-24
  • 2021-09-12
  • 2021-04-11
  • 2022-01-05
  • 2021-10-28
相关资源
相似解决方案