1、首先保证whistle更新到最新的版本,我用的是:2.9.22 版本;如需更新,跳转:http://wproxy.org/whistle/update.html
2、找到网站上的post请求:http://watchtower.jd.com/api/events/queryEventOSList
入参是:
我们目标是匹配入参中的mode是os的就会代理:
3、首先在whistle中新建规则:
//watchtower.jd.com/api/events/queryEventOSList reqScript://{reqScript.js}
4、然后在 values 中新建:
if (/(?:^|&)mode=([^&]+)/.test(body)){ var mode = RegExp.$1; if(mode == "os"){ rules.push('* resBody://{ceshi.json}'); } }
解释一下上面代码的逻辑:
匹配到body请求内容中的mode参数,如果mode等于os,则匹配规则为返回的内容是value中的 ceshi.json 文件。
然后刷新页面,可以看到改post请求已经被替换了
如果修改 mode == "android",则不会匹配打接口了。
标签:匹配,请求,入参,whistle,mode,post,os From: https://www.cnblogs.com/xiaozhumaopao/p/16903681.html