whistle 帮助文档

260课时
737学过
8分

3. 命令行操作

4. 手动更新

9. 匹配原则

13. 注意事项

14. 常见问题

16. 协议列表

协议列表

@ 功能

设置UI样式

设置hosts

设代理

延迟请求

修改请求URL

修改请求方法

修改请求头

延迟响应

修改请求内容

修改响应状态码

修改响应头

修改响应内容

过滤配置

启用或禁用一些配置

获取抓包数据

动态设置规则

开发调试工具

@

host

保留传统的hosts语法规则

灵活强大的whistle匹配模式

host-例子

host-过滤规则

响应规则列表

请求替换

请求替换-过滤规则

file (xfile)

file (xfile)-过滤规则

xfile

xfile-过滤规则

tpl

tpl-过滤规则

xtpl

rawfile

rawfile-过滤规则

xrawfile

自定义

style

style-过滤规则

pipe

pipe-过滤规则

44 plugin

plugin-过滤规则

weinre

weinre-过滤规则

log

log-快速上手

不同页面 log 切换

嵌入自定义脚本

log-过滤规则

proxy(http-proxy)

proxy(http-proxy)-过滤规则

https-proxy

https-proxy-过滤规则

socks

socks-过滤规则

pac

pac-过滤规则

filter (excludeFilter includeFilter)

filter (excludeFilter includeFilter)-例子

ignore

ignore-配置规则

ignore-忽略规则

enable

enable-过滤规则

disable

disable-过滤规则

delete

delete-过滤规则

urlParams

urlParams-过滤规则

pathReplace

pathReplace-过滤规则

method

method-过滤规则

statusCode

statusCode-过滤规则

replaceStatus

replaceStatus-过滤规则

referer

referer-过滤规则

auth

auth-过滤规则

ua

ua-过滤规则

cache

cache-过滤规则

redirect

redirect-过滤规则

attachment

attachment-过滤规则

forwardedFor-过滤规则

responseFor

responseFor-过滤规则

reqMerge

reqMerge-例子

reqMerge-过滤规则

resMerge

resMerge-例子

resMerge-过滤规则

reqScript (reqRules)

reqScript (reqRules)-静态规则列表

reqScript (reqRules)-通过脚本动态设置规则

reqScript (reqRules)-过滤规则

resScript (resRules)

resScript (resRules)-静态规则列表

resScript (resRules)-通过脚本动态设置规则

resScript (resRules)-过滤规则

reqDelay

reqDelay-过滤规则

resDelay

resDelay-过滤规则

reqSpeed

reqSpeed-过滤规则

resSpeed

resSpeed-过滤规则

reqType

reqType-过滤规则

resType

resType-过滤规则

reqCharset

reqCharset-过滤规则

resCharset

resCharset-过滤规则

reqCookies

reqCookies-过滤规则

resCookies

resCookies-过滤规则

reqCors

reqCors-过滤规则

resCors

resCors-过滤规则

reqHeaders

reqHeaders-过滤规则

resHeaders

resHeaders-过滤规则

reqPrepend

reqPrepend-过滤规则

resPrepend

resPrepend-过滤规则

reqBody

reqBody-过滤规则

resBody

resBody-过滤规则

reqAppend

reqAppend-过滤规则

resAppend

resAppend-过滤规则

headerReplace

headerReplace-过滤规则

reqReplace

reqReplace-过滤规则

resReplace

resReplace-过滤规则

htmlPrepend

htmlPrepend-过滤规则

cssPrepend

cssPrepend-过滤规则

jsPrepend

jsPrepend-过滤规则

htmlBody

htmlBody-过滤规则

cssBody

cssBody-过滤规则

jsBody

jsBody-过滤规则

htmlAppend

htmlAppend-过滤规则

cssAppend

cssAppend-过滤规则

jsAppend

jsAppend-过滤规则

reqWrite

reqWrite-过滤规则

resWrite

resWrite-过滤规则

reqWriteRaw

reqWriteRaw-过滤规则

resWriteRaw

resWriteRaw-过滤规则

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
2分钟

tunnelRulesServer

设置tunnel请求规则的服务

 exports.tunnelRulesServer = (server, options) => {
   // options 同上,initial.js的options是同一个对象
   server.on('request', (req, res) => {
     const oReq = req.originalReq;
     const oRes = req.originalRes;

     req.clientIp: 请求的客户端IP,注意:挂在req里面

     oReq.id: 请求的ID,每个请求对应一个唯一的ID
     oReq.headers: 请求的原始headers,而req.headers包含了一些插件自定义字段
     oReq.ruleValue: 配置的规则值, 如:whistle.xxx://ruleValue
     oReq.url: 请求的完整url
     oReq.realUrl: 请求的真实url,一般为空
     oReq.method: 请求方法
     oReq.clientPort: 请求的客户端端口
     oReq.globalValue: pattern @globalValue
     oReq.proxyValue: 配置的代理规则,一般为空
     oReq.pacValue: 配置的pac规则,一般为空

     oRes.serverIp: 服务端IP,只有在server或resServer、resStatsServer才能获取到
     oRes.statusCode: 响应状态码,同 oRes.serverIp

     // 获取抓包数据,不需要等待响应完成
     // 这里unsafe主要是提醒不要在回调里面返回规则
     // 如果这样不会触发响应
     req.unsafe_getReqSession((s) => {
       // 如果设置了 enable://hide 会获取到空数据
       if (!s) {
         return;
       }
       // do sth
     }):
     // 获取完整的抓包数据,要等待响应完成
     // 这里unsafe主要是提醒不要在回调里面返回规则
     // 如果这样不会触发响应
     req.unsafe_getSession((s) => {
       // 如果设置了 enable://hide 会获取到空数据
       if (!s) {
         return;
       }
       // do sth
     }):
     // 获取WebSocket或Socket请求的帧数据列表
     // 返回 1~16 个帧数据
     // 这里unsafe主要是提醒不要在回调里面返回规则
     // 如果这样不会触发响应
     req.unsafe_getFrames((list) => {
       // 如果为空表示该长连接已断开
       if (!list) {
         return;
       }
       // do sth
     }):
   });
 };