decument:
- wproxy.org/whistle/
- github.com/LuckyWinty/…
- cloud.tencent.com/developer/a…
- www.wynneit.cn/2021/03/27/…
- 代理成功是深蓝色
切记下面这几个关键步骤:
- 勾选上 Enable HTTP/2
- 下载安装证书并在对应为止完全信任该证书
- 设置系统代理或者 switchyOmega 插件代理,如果用 Chrome 插件,记得点一下应用选项。
如果在 Network 可以抓到浏览器的请求,那就是配置成功了,不然就是证书或者代理没配置好。
mock 接口
^xxx.com/test$ resBody://{xxx.json}
mock 本地文件
xxx.com/test file://D:/path/test/file/test.json
mock html
wap.didialift.com/beatles/cam… htmlBody://{blind.html}
reqScript 代理线上
/https:\/\/(.*)?\.xxx.(.*)?\/(.*)?\/xxx\/(.*)?/ reqScript://{prod.js}
if (method !== 'OPTIONS') {
rules.push('/https:\/\/(.*)?\.xxx.(.*)?\/(.*)?\/xxx\/(.*)?/ resCors://* https://xxx/$3/xxx/$4');
}
3、 reqScript
考虑一种场景:我们要测一个视频上传接口返回 500 的情况,看是否走到了正常的提示逻辑,通常我们模拟状态码就可以解决,但如果接口跨域了,会先发起一个路径一致的 options 请求,我们希望这个 options 请求依然返回 200,只处理 post 请求。
xxx.com/test reqScript://{onlyPostRule}
if (method === 'POST') {
rules.push('https://xxx.com statusCode://500');
}
修改返回码
www.qq.com statusCode://500
替换线上文件
如果线上环境,有特殊问题。没法在生产环境复现,这个时候可以直接替换js文件到本地进行调试,提高调试效率。
example.com/cdn/example… file://{example.js} //也可以替换到本地 www.ifeng.com file:///User/username/test // 会先尝试加载/User/username/test这个文件,如果不存在,则会加载/User/username/test/index.html,如果没有对应的文件则返回404。
/txx.xx.xx/xx/(.*)?-[0… http://localhost:3000/xx/$1.js
请求转发
www.ifeng.com域名下的请求都替换成对应的www.aliexpress.com域名 www.ifeng.com www.aliexpress.com ^c.y.qq.com/splcloud/fc…* http://192.168.3.14:9000/splcloud/fcgi-bin/gethotkey.fcg?_=$1&cv=$2&ct=$3&format=$4
debugger
1、插入js
xxx.com/test js://{vConsole.js} xxx.com/test jsPrepend://{vConsole.js} wy.guahao.com/ htmlAppend://{debugger}
2、自带inspect插件
npm i -g whistle.inspect www.google.com whistle.inspect://
3、远程 Console.xxx 输出
wy.guahao.com 域名的网站远程打印 log wy.guahao.com log:// 远程打印 log 同时注入脚本 wy.guahao.com log://{injection-log}
正则使用
- 表示匹配到一个 / 就停下,而 *** 表示匹配多个 一般用于某一类的域名/url代理,例如我希望含有baidu.com域名的地址,不经过代理 /^(?!.baidu.com).$/ socks://127.0.0.1:1086
重定向
这个最常用的场景就是,我们某个页面需要在特定环境下调试,但是特定环境却没有入口去打开页面。例如,在小程序环境中,调试h5页面。 #www.baidu.com/ redirect://xxx.com
解决跨域问题
1、apinew.juejin.im/recommend_a… resCors://{CORSHeaders.json}
cors.json为origin: juejin.im
2、www.baidu.com resCors://*
修改 ua (模拟小程序)
www.baidu.com/ ua://{ua} ua文件:Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; RM-1113) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/13.10586
Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, token
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
content-type: application/json
status: 200
7、修改请求、响应的 header s://www.qq.com/some/ajax resHeaders://{CORSHeaders}
模拟 5 秒超时
www.baidu.com reqDelay://5000 enable://abort
模拟弱网
www.baidu.com resSpeed://50