一、应用
定位bug:界定bug是由前端产生的,还是后端产生的。可以是两种策略:
1,抓包--抓取请求或者响应的数据包
2,改包--修改请求或者响应的数据包
使用Fiddler抓包,查看前端发送的请求和后端返回的响应。如果请求有问题,那就是前端的bug;如果响应有问题,那就是后端的bug。
二、改包
方式:拦截、修改、放行
对象:请求、响应
流程:
对请求进行拦截(打断点、设置断点)-修改请求消息-放行请求消息-取消拦截(取消断点)
对响应进行拦截(打断点、设置断点)-修改响应消息-放行响应消息-取消拦截(取消断点)
三、拦截(重点)
拦截也叫打断点(设置断点)。断点的设置有两种:全局断点、局部断点。全局断点设置如下:
三种方法:
(1)状态栏
没有任何拦截的设置图标,如下:
由空白处,如上图红框中,第一次点击(拦截请求-对请求打断点)--第二次点击(拦截响应--对响应打 断点)--第三次点击(也就是恢复空白--取消所有拦截--取消所有断点)
拦截请求的设置图标如下:
拦截响应的设置图标如下:
(2)菜单栏
(3)快捷键,如上图所示
四、应用场景
(1)拦截请求,修改请求,放行请求
①构造请求场景(地址栏已有参数“南瓜”)
②设置断点
③发送请求(单击“百度一下”)
请求只有被拦截,才能被修改。放行之后的或者未被拦截的请求,是不能被修改的)
⑤放行请求 (点击绿色按钮)
⑥观察效果
响应报文下方的webview视图中可看见是“板栗南瓜”相关字段。
2)浏览器中可看到,搜索框是“南瓜”,但实际显示信息是“板栗南瓜”(如下图所示)
(2)拦截请求,修改响应,放行请求
拦截百度首页的请求,修改该请求的响应,为1个图片,返回浏览器。
实现方案:
1,构造请求场景(输入百度网址,但未按回车键的状态)
2,设置断点--对请求打断点
3,发送请求(在浏览器,点击刷新或者键入百度首页按回车)
4,修改响应
①选择fiddler自带的一些样例
从本地文件中选择一个文件,比如html文本,图片
5,放行
6,观察效果
(3)拦截响应,修改响应,放行响应
拦截百度首页请求后的响应,将响应报文的标题修改为:百度一下,你就怎么也知道不了
实现方案:
1,构造请求场景(输入百度网址,但未按回车键的状态)
2,设置断点--对响应打断点
3,发送请求(在浏览器,点击刷新或者键入百度首页按回车)
4,修改响应
①选择fiddler自带的一些样例,从本地文件中选择一个文件,比如html文本,图片
②可以对原始的响应报文进行修改
5,放行响应
6,观察效果
(4)拦截请求,修改请求,拦截响应,修改响应
场景:请求百度首页,返回163首页的页面,并且标题变为:百度一下,你就来到了网易。
实现方案:
0,获取163首页的请求消息
1,构造百度请求场景
2,设置断点--对请求打断点
3,发送百度请求
4,修改百度请求
将百度请求,修改为163请求
①复制163请求消息体,覆盖百度请求消息体
②对比两者的区别,只改不一样的主要部分
5,放行请求,拦截响应(本场景的重点)
6,修改响应
将标题的标签改为:百度一下,你就来到了网易。
7,放行响应
8,观察效果
(5)对特定请求,实现自动重定向响应
场景:请求百度首页,不打断点,直接返回163的首页
实现方案:
①使用自动回复器,实现自动响应
重新构造已发送的请求