whistle(读音[ˈwɪsəl],拼音[wēisǒu])基于Node实现的跨平台web调试代理工具,相似的工具备Windows平台上的Fiddler,主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应,也能够做为HTTP代理服务器使用,不一样于Fiddler经过断点修改请求响应的方式,whistle采用的是相似配置系统hosts的方式,一切操做均可以经过配置实现html
whistle的全部操做均可以经过相似以下配置方式实现:web
pattern operatorURI
pattern 为匹配请求url的表达式npm
域名匹配 www.example.com 带端口的域名 www.example.com:6666 带协议的域名,支持:http、https、ws、wss、tunnel http://www.example.com # 路径匹配,一样支持带协议、端口 https:/www.exapmle.com:6666/test # 正则匹配 /^https?://www\.example\.com\/test/(.*)/ # 通配符匹配 ^www.example.com/test/***
operatorURI 为对应的操做,能够是域名或路径,也能够由操做协议+操做值组成(operatorURI = opProtocol://opValue)json
m.hutaojie.com 127.0.0.1:3000 filter:///proxy/ filter:///login.html #excludeFilter:///garden_home.html/
www.example.com res://{index.html} www.example.com res://({"delay":6000,"body":"1234567890"}) www.example.com xfile://</Users/index.html>
精准匹配服务器
$符号开头 $http://www.test.com operatorURI
正则匹配socket
支持子匹配,$0表明整个请求url,$1——$9表明子匹配的字符串 /[^?#]\/([^\/]+)\.html/ protocol://...$1...
通配符匹配工具
^符号开头 ^www.example.com/test/*** referer://http://www.test.com/$1
npm i -g whistle.your-plugin-name
请求替换post
m.hutaojie.com 127.0.0.1:3000
file AND xfileurl
将请求的内容替换成指定的文件的内容spa
www.test.com/abc file://filpath
则请求http://www.test.com/abc/index...,若是不想自动补全能够使用操做符<>:
www.test.com/abc file://<filepath>
彻底自定义http的报文,包括header和body,通常不用这个,除非有完整的http报文。
excludeFilter:表示排除匹配的请求
includeFilter:只保留匹配的请求
method
m.hutaojie.com method://post
statusCode
设置状态码,不会发起请求,要配合resBody等使用
statusCode://200
覆盖响应的状态码
设置延迟请求/响应的时间
reqHeaders/resHeaders
设置请求/响应的额外头部
m.hutaojie.com reqHeaders://{test-reqHeaders.json}
test-reqHeaders.json:
x-test1: value1 x-test2: value2 x-testN: valueN