Fiddler:bpu 阻塞多个请求
来源:互联网 发布:知乎无法提交答案 编辑:程序博客网 时间:2024/06/06 12:59
Fiddler教程,在持续不断的更新中
背景:
今天同事问我,bpu怎么同时阻塞多个请求呢?
同事 :
我是这样写的 bpu a b ,我这样写怎么实现不了同时阻塞a 和 b 请求呢?
我:
我没有这样阻塞过,但是在我的理解里应该这样写,bpu a enter执行,bpu b enter执行,分开执行(因为我之前没有这样阻塞过,只是按照自己的理解这样认为的,接下来就打脸了,不都是你以为的就是你以为的啊,泪奔啊)
同事:
我按照你说的方式做了,但是还是不可以啊,
额~,好尴尬啊
我只有默默的打开Fiddler,ctr+R打开脚本,ctr+F 输入关键字 bpu,找到bpu命令所在的核心代码
case "bpu": var len = sParams.Length ; if (sParams.Length<2) {bpRequestURI=null; FiddlerObject.StatusText="bpRequestURI breakpoint cleared"; return false;} var len = sParams.Length ; bpRequestURI= sParams[1]; FiddlerObject.StatusText="RequestURI breakpoint for "+sParams[1]; return true;
核心: bpRequestURI= sParams[1]; 只取了一个参数值。
场景1解析(也就是同事的执行方法): bpu /sdk /zwf ,
使用空格隔开的,那么
sParams[0] = “bpu”
sParams[1] = “/sdk”
sParams[2] = “/zwf”
只取了sParams[1] = “/sdk”,所以只会阻塞包含/sdk的请求
场景2解析(也就是我认为的方法,允许我哭一会):
bpu /sdk
bpu /zwf
每次执行bpRequestURI,都会被赋新值,所以我阻塞包含/zwf 的请求
我们怎么样才可以实现,阻塞多个请求呢?
让我沿着核心代码,顺藤抹瓜,ctr+F 输入关键字 bpRequestURI 查询,找到参数定义的地方
这个是定义变量的地方,是全局变量
//在main()方法中// These static variables are used for simple breakpointing & other QuickExec rules BindPref("fiddlerscript.ephemeral.bpRequestURI") public static var bpRequestURI:String = null;
找到使用此参数,bpRequestURI 不为null ,并且 请求的uri 包含bpRequestURI ,则阻断该请求
if ((null!=bpRequestURI) && oSession.uriContains(bpRequestURI)) { oSession["x-breakrequest"]="uri";}
这样捋下来,就搞明白了,阻塞请求是怎么个原理了,是不是也很简单呢?!
接下来就是改造它来实现bpu 阻塞多个请求了。
第一步:
//在main()添加如下代码BindPref("fiddlerscript.ephemeral.bpRequestURI")//数组的长度10,10个阻塞的命令,内容为空格,和bpu命令用空格分割保持一致public static var bpRequestURIs:String[] = [" "," "," "," "," "," "," "," "," "," "] ;
第二步:
case "bpu": var len1 = sParams.Length ; var len2 = bpRequestURIs.Length; //每次赋值之前先恢复原始值 for(var i = 0; i< len2; i++){ bpRequestURIs[i]=" "; } if (len1 < 2) {bpRequestURI=null; FiddlerObject.StatusText="RequestURI breakpoint cleared"; return false;} var text = ""; for(var i = 1; i < len1; i++){ bpRequestURIs[i-1] = sParams[i]; text += sParams[i] +" "; } FiddlerObject.StatusText="RequestURI breakpoint for " + text; return true;
第三步:
// 在OnBeforeRequest() 方法中// 注释掉之前的方法// if ((null!=bpRequestURI) && oSession.uriContains(bpRequestURI)) {// oSession["x-breakrequest"]="uri";// } var len = bpRequestURIs.Length; for(var i = 0; i< len; i++){ if(bpRequestURIs[i]!=null && bpRequestURIs[i]!= " "&& oSession.uriContains(bpRequestURIs[i]) ){ oSession["x-breakrequest"]="uri"; } }
完成,这样就完成了!
你明白了吗,如果有不明白的地方,可以给我留言呢?我一定会在第一时间回复你 * - * |||
- Fiddler:bpu 阻塞多个请求
- fiddler-bpu 拦截多个请求
- Fiddler—Fiddler打断点(bpu)
- fiddler导出多个请求返回数据的方法
- Fiddler抓包8-打断点(bpu)
- Fiddler抓包8-打断点(bpu)
- Fiddler抓包8-打断点(bpu)
- Fiddler模拟请求
- Fiddler 获取应用程序请求
- Fiddler 构造http请求
- fiddler录制http请求
- Fiddler抓取HTTP请求
- Fiddler修改请求数据
- Fiddler模拟http请求
- Fiddler抓取HTTPS请求
- Fiddler 监听手机请求
- Fiddler代理转发请求
- fiddler post请求
- JavaWeb学习总结(三十五)——使用JDBC处理Oracle大数据
- js倒计时10秒
- javaweb学习总结(三十六)——使用JDBC进行批处理
- javaweb学习总结(三十七)——获得MySQL数据库自动生成的主键
- 解决IE和Firefox下flash挡住div层的问题
- Fiddler:bpu 阻塞多个请求
- javaweb学习总结(三十八)——事务
- ubuntu 安装 matlab 2017a
- CodeForces 449 A.Jzzhu and Chocolate(枚举)
- 群发邮件使用ajax用Post而不用get
- kettle连接hadoop&hdfs图文详解
- javaweb学习总结(三十九)——数据库连接池
- 【SVN】的地址更新问题?
- 常用处理语句