Package Exports
- whistle
- whistle/bin/whistle.js
- whistle/index
- whistle/lib/config
- whistle/lib/rules/storage
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (whistle) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
whistle
whistle@0.11.1+开始支持点击列表头排序,新增部分快捷键支持删除选中的项,调整Rules、Values的顺序,具体变更点请参考CHANGELOG.md和快捷键,建议更新到最新版本
目录
概述
whistle是用node实现的跨平台web调试代理工具,支持windows、mac、linux等操作系统,支持操作http、https、websocket请求,查看请求数据等,可以部署在本地电脑、虚拟机、或远程服务器,并通过本地浏览器访问whistle的配置页面,查看操作请求;内置 weinre 支持移动端页面调试,且通过log模块可以自动获取页面js错误、查看console打印出来的数据及注入自定义的js手动调试页面,有以下主要特点(详细内容请参考:使用方法):
简单自然的配置方式,把每个规则抽象成一个uri,并通过配置请求url到规则uri,实现对请求的操作
匹配方式 --> 操作规则
pattern operator-uri如果
pattern和operator-uri其中有一个不是http[s]、ws[s]协议,则两个的位置可以调换operator-uri pattern
灵活的匹配方式(pattern),支持三种匹配方式:
- 域名匹配:把规则作用于所有该域名的请求
- 路径匹配:把规则作用于该路径或该路径的子路径
- 正则匹配:通过正则匹配规则,支持通过子匹配把请求url里面的参数带到新的url
更多功能请参考:https://github.com/avwo/whistle/wiki/匹配方式
丰富的操作规则,通过简单类hosts的映射配置,可以实现如下功能(完整功能请参考:功能列表):
- 配置host
- 修改请求,包括: 请求方法、请求头、修改内容、延迟发送请求、限制请求速度,设置timeout
- 修改响应,包括: 响应状态码、响应头、修改内容、 延迟响应、 限制响应速度
- 替换请求:
- 替换本地文件(支持替换jsonp请求)
- 设置代理(支持http、socks代理)
- 请求转发
- 通过插件扩展
- 内置weinre,通过weinre可以修改手机端或远程网页的DOM结构,调试页面等
- 设置过滤,用于过滤一些已设置的规则(filter、disable)
- 导出数据:exports、exportsUrl、reqWrite、resWrite、reqWriteRaw、resWriteRaw
- 自定义脚本修改url的请求参数,实现动态匹配规则的功能:dispatch
- 支持自动捕获手机端或远程页面的js异常,且可以嵌入脚本打印console等:log、界面操作
更多功能请参考:https://github.com/avwo/whistle/wiki/功能列表
友好的配置页面,支持配置分组,高亮显示,可以把规则内容配置的ui的values系统里面,无需用本地文件承载,查看请求信息,重发请求,构造请求:
更多功能请查看:https://github.com/avwo/whistle/wiki
下面先讲下如何安装启动whistle,然后再对上述功能给出一些例子。
安装
安装启动whistle,需要以下四个步骤: 安装node、安装whistle、启动whistle、配置代理。
安装node
如果你的机器上已经安装了 v0.10.0 及以上版本的node(推荐安装最新的node版本),可以忽略此步骤。
windows或mac可以直接访问https://nodejs.org/点击页面中间的 INSTALL 按钮下载安装包,下载完毕后默认安装即可。
linux可以参考(推荐使用源码安装):http://my.oschina.net/blogshi/blog/260953
安装完node后,执行下面命令,查看当前node版本
$ node -v
v0.12.7如果能正常输出node的版本号,表示node已安装成功。
安装whistle
执行npm命令 npm install -g whistle,开始安装whistle (**mac或linux用户,如果安装过程出现异常,可以使用 sudo npm install -g whistle安装,下面命令类同,如果max或linux用户执行命令过程出现异常信息,都在命令前面加个 sudo**)
$ npm install -g whistlenpm默认镜像是在国外,有时候安装速度很慢或者出现安装不了的情况,如果无法安装或者安装很慢,可以使用taobao的镜像安装:
$ npm install cnpm -g --registry=https://registry.npm.taobao.org安装成功后,直接执行:
$ cnpm install -g whistlemac或linux用户,如果安装过程出现异常,可以使用 sudo cnpm install -g whistle安装
whistle安装完成后,执行命令 whistle help (v0.7.0及以上版本也可以使用w2 help),查看whistle的帮助信息
$ whistle help
Usage: whistle <command> [options]
Commands:
run Start a front service
start Start a background service
stop Stop current background service
restart Restart current background service
help Display help information
Options:
-h, --help output usage information
-d, --debug [debug] debug mode
-n, --username [username] login username
-w, --password [password] login password
-p, --port [port] whistle port(8899 by default
)
-m, --middlewares [script path or module name] express middlewares path (as
: xx,yy/zz.js)
-u, --uipath [script path] web ui plugin path
-t, --timneout [ms] request timeout(36000 ms by
default)
-s, --sockets [number] max sockets
-V, --version output the version number
-c, --custom <custom> custom parameters ("node --h
armony")如果能正常输出whistle的帮助信息,表示whistle已安装成功。
启动whistle
执行如下命令启动whistle (v0.7.0及以上版本也可以使用w2 start)
$ whistle startNote: 如果要防止其他机器访问配置页面,可以在启动时加上登录用户名和密码 -n yourusername -w yourpassword。
重启whsitle (v0.7.0及以上版本也可以使用w2 restart)
$ whistle restart停止whistle (v0.7.0及以上版本也可以使用w2 stop)
$ whistle stop如果whistle无法启动,可以执行如下命令启动whistle可以打印出错误信息 (v0.7.0及以上版本也可以使用w2 run)
$ whistle run启动完whistle后,最后一步需要配置代理,并把代理指向whistle。
配置代理
######配置信息:
IP: 127.0.0.1(如果部署在远程服务器或虚拟机上,把ip改成对应服务器或虚拟机的ip即可)
端口: 8899(默认端口为8899,如果端口被占用,可以在启动是通过
-p来指定新的端口,更多信息可以通过执行命令行whistle help(v0.7.0及以上版本也可以使用w2 help) 查看)勾选上 对所有协议均使用相同的代理服务器
######两种代理配置方式(任选其中一个,并把上面配置信息配置上即可):
直接配置系统代理:
安装浏览器代理插件 (推荐)
安装chrome代理插件: whistle管理插件 或者 Proxy SwitchySharp
安装firefox代理插件: Proxy Selector
访问配置页面
启动whistle及配置完代理后,用**Chrome浏览器(由于css兼容性问题界面只支持Chrome浏览器)**访问配置页面 http://local.whistlejs.com/或请求列表页面http://local.whistlejs.com/index.html,如果能正常打开页面,whistle安装启动完毕,可以开始使用。
Note: 也支持直接用ip访问配置页面: http://whistleServerIP:whistlePort/
至此,whistle已经安装启动配置完毕,匹配方式、规则配置、ui操作、查看抓包数据、重发请求、构造请求等功能请参考:使用方法
有什么问题可以通过QQ群反馈: 462558941

