Anyproxy 是alibaba 前端团队开源的http/https 基于node的代理服务器。前端
业界的http代理工具在windows下有fiddler,mac有charles,为何选择anyproxy呢?我我的认为有如下几个点:node
// 安装anyproxy npm install -g anyproxy // 启动 anyproxy // 默认端口号8001 // 访问http://127.0.0.1:8002,web界面上能看到全部的请求信息 // 若需抓取https请求,需生成证书 // 生成证书 anyproxy-ca // 启动AnyProxy,并解析全部https请求 anyproxy --intercept
手机须要手动添加信任,举例iOS安装证书。以下图,点击web ui中的 Root CA,按提示扫描二维码安装。web
iOS >= 10.3信任CA证书除了上述证书安装过程,还须要在 设置->通用->关于本机->证书信任设置 中把AnyProxy证书的开关打开,不然默认是关闭的。npm
对于前端工程师来讲,使用代码最重要的一个用途就是拦截请求/响应,在客户端与服务端都无感知的状况下更改调试脚本、修改响应头内容等。anyproxy提供的配置仍是很灵活的,它提供的一个典型的规则模块代码结构以下:windows
// rule.js module.exports = { // 模块介绍 summary: 'my customized rule for AnyProxy', // 发送请求前拦截处理 *beforeSendRequest(requestDetail) { /* ... */ }, // 发送响应前处理 *beforeSendResponse(requestDetail, responseDetail) { /* ... */ }, // 是否处理https请求 *beforeDealHttpsRequest(requestDetail) { /* ... */ }, // 请求出错的事件 *onError(requestDetail, error) { /* ... */ }, // https链接服务器出错 *onConnectError(requestDetail, error) { /* ... */ } };
调用 anyproxy --rule rule.js
便可。服务器
Anyproxy的官网文档 写得很是详细,使用也很简单,有兴趣的童鞋能够去看看。网络