docs/docs/rules/delete.md
用于删除请求 URL、请求/响应头、请求/响应内容。
pattern delete://prop1|prop2|... [filters...]
# 等效于:
pattern delete://prop1 delete://prop2 ... [filters...]
分隔符为
|或&
| 参数 | 描述 | 详细文档 |
|---|---|---|
| pattern | 匹配请求 URL 的表达式 | 匹配模式文档 |
| value | pathname:删除请求路径(不包含请求参数) | |
pathname.index:index 为路径分段序号 ...、-1、0、1、... 或关键字 last 详见下面说明 | ||
urlParams:删除所有请求参数 | ||
urlParams.xxx:删除 URL 的 xxx 参数 | ||
reqHeaders.xxx: 删除请求头的 xxx 字段 | ||
resHeaders.xxx: 删除响应头的 xxx 字段 | ||
reqBody: 删除所有请求内容 | ||
resBody: 删除所有响应内容 | ||
reqBody.xxx.yyy: 删除请求内容中类型为表单(form)或JSON的 xxx.yyy 字段 | ||
resBody.xxx.yyy: 删除响应类型为 JSONP 或 JSON 的响应内容里的 xxx.yyy 字段 | ||
reqType: 删除请求头 content-type 里的类型,不包含可能存在的 charset | ||
resType: 删除响应头 content-type 里的类型,不包含可能存在的 charset | ||
reqCharset: 删除请求头 content-type 里可能存在的 charset | ||
resCharset: 删除响应头 content-type 里可能存在的 charset | ||
reqCookies.xxx: 删除请求头的里面名为 xxx 的 cookie | ||
resCookies.xxx: 删除响应头的里面名为 xxx 的 cookie | ||
| filters | 可选过滤器,支持匹配: | |
| • 请求URL/方法/头部/内容 | ||
| • 响应状态码/头部 | 过滤器文档 |
https://www.example.com/path delete://reqCookies.token|resCookies.token
https://raw.githubusercontent.com/avwo/whistle/refs/heads/master/package.json delete://resBody.name resType://json
上述 cookie 删除操作仅作用于请求/响应过程中的 cookie,不会修改浏览器本地存储的 cookie。如需修改浏览器持久化 cookie,可通过以下方式实现:
支持版本:v2.9.102 及以上
# 基本格式
目标域名 delete://pathname.索引号
# 示例
www.example.com/api/path/to delete://pathname.0 delete://pathname.1 delete://pathname.-1
该规则用于删除请求 URL 中路径的特定分段。Whistle 会提取不包含查询参数的请求路径,并通过 / 分割成数组后进行删除操作。
示例解析:
https://www.example.com/api/path/to/xxx?queryapi/path/to/xxx['api', 'path', 'to', 'xxx']delete://pathname.0 → 删除 'api'delete://pathname.1 → 删除 'path'delete://pathname.-1 → 删除 'xxx'/tohttps://www.example.com/to?querylast 可删除最后一段路径但保留末尾斜杠当路径以 / 结尾时,分割后的数组最后会包含一个空字符串项:
/api/path/to/xxx/['api', 'path', 'to', 'xxx', '']pathname.-1 删除最后一段且不保留末尾斜杠pathname.last 删除最后一段但保留末尾斜杠对比示例:
www.example.com/api/path/to delete://pathname.0 delete://pathname.1 delete://pathname.last
https://www.example.com/api/path/to/xxx?queryhttps://www.example.com/to/?query (保留末尾斜杠)如果对象的 key 包含以下字符,在路径表达式中需要使用反斜杠 \ 进行转义:
| 和 & (一个空格).\t、换行符 \n、回车符 \r、换页符 \f、垂直制表符 \v| 原始字符 | 转义写法 |
|---|---|
| ` | ` |
& | \& |
| 空格 | \ |
. | \. |
| 制表符 | \t |
| 换行符 | \n |
| 回车符 | \r |
| 换页符 | \f |
| 垂直制表符 | \v |
注意:反斜杠
\本身也是转义字符,若要表示字面反斜杠,需写作\\。
假设需要删除请求 body 中的两个 key:
\n .p(包含换行符、空格、点、字母 p)test|&test(包含竖线和 &)对应的路径表达式应写作:
reqBody.\n\ \.p.test\|\&test
其中:
\n 表示换行符\ 表示空格\. 表示点\| 表示竖线\& 表示 & 符号完整请求示例:
# 删除请求 body 中的 key1 和 key2
https://www.example.com/path delete://reqBody.\n\ \.p.test\|\&test