Fiddler-基础四大功能
fiddler的配置和抓包使用等功能已经在前面文章中做了详细说明,这篇文章主要针对fiddler常用的四大功能做说明
简单原理解释和注意事项:
Fiddler-option-connect配置了8888端口的代理打开后,表示这台PC机已经打开了代理,我们可以从浏览器--设置--网络设置中看到代理已经被勾选
手机代理连接后,是通过同一IP网段的的pc机上的8888端口进行代理(手机怎样连接代理见之前文章),所以,如果pc机上的fiddler关闭,手机代理网络是连接失败的
每个手机和PC机都需要唯一证书,所以每个手机连其它PC机上的fiddler时,需要重新安装证书(注意:ios证书安装完成后,还需要去设置-通用-关于本机-打开证书开关)
一、解析请求:如:解析http请求状态,请求头,请求正文,返回头,返回正文等
详见抓包内容解析
二、修改请求,如:设置断点,则可以修改发出去的请求数据,或者修改请求返回的数据
步骤一:拦截HTTP请求
设置断点共有两种方式:
1、fiddler菜单栏->rules->automatic Breakpoints->选择断点方式,这种方式下设定的断点会对之后的所有HTTP请求有效。有两个断点位置:
1)before response。也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据(修改请求数据)
2)after response。也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果(修改返回的数据)
3)如何消除命令呢?点击Rules->Automatic Breakpoint->Disabled
2、命令行设置断点
1)bpu在请求开始时中断
2)bpafter在响应到达时中断
3)bps中断HTTP响应状态为指定字符的全部session响应
4)bpv/bpm中断指定请求方式的全部session响应
步骤二:修改数据
拦截Http请求后修改方式有两种,一种是临时修改,即结果只对当次请求有效,另一种是永久修改,可以通过urlreplace命令实现。
①临时修改请求
即在fiddler中执行Inspectors->WebForms,修改请求变量参数后执行Run to Completion,服务器返回新的请求结果
②永久性修改请求
1)命令行设置修改规则,修改请求:urlreplace 旧请求值 新请求值
fiddler命令行输入:urlreplace pageid=103 pageid=105
其中pageid是请求参数,输入命令后回车即可,新的请求设置成功,除非释放请求,否则请求值不变,释放请求命令urlreplace
2)脚本中修改规则,打开脚本方式:fiddler执行Rules->Customize Rules
注意:由于在请求过程中,接口刷的比较快,很难把断点打在需要修改数据的接口地方,可以在请求开始前就打上断点,这样每一步骤都会停住,手动点击Run to Completion,直到走到需要修改数据的接口
3、重定向请求,如:替换远程文件,则可以调试线上的js/css代码(mock功能)
可参考操作步骤
https://blog.csdn.net/weixin_42606128/article/details/81015282
简单来说从clent,server端发出来的请求,都需要通过Fiddler进行代理走一遍。如果有任何请求需要做修改,都可以用Fiddler拦截以后进行修改转发一次。
也就是一旦用fiddler mock出来的接口,必须要fiddler抓到了这个接口请求,才会替代成mock数据。比如其它非此fiddler服务器请求的,不经过代理的,不走mock接口
4、构造请求,如:构造请求发送数据,比如可以用于的测试网站安全性(可以当成接口请求工具使用)
注意:当提交数据为formdata格式时,一定要在header处content-Type注明类型