anyproxy代理入门

关于anyproxy

Anyproxy 是alibaba 前端团队开源的http/https 基于node的代理服务器。

业界的http代理工具在windows下有fiddler,mac有charles,为什么选择anyproxy呢?我个人认为有以下几个点:

  • 同时兼容mac/windows用户
  • 提供友好的web版界面,可实时观测网络请求
  • 基于nodeJS开发,开放接口,允许用户进行充分的自定义进行数据mock等操作,更符合我们的操作习惯

简单的使用操作

// 安装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,按提示扫描二维码安装。

iOS >= 10.3信任CA证书除了上述证书安装过程,还需要在 设置->通用->关于本机->证书信任设置 中把AnyProxy证书的开关打开,否则默认是关闭的。

rule文档的使用

对于前端工程师来说,使用代码最重要的一个用途就是拦截请求/响应,在客户端与服务端都无感知的情况下更改调试脚本、修改响应头内容等。anyproxy提供的配置还是很灵活的,它提供的一个典型的规则模块代码结构如下:

// 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的官网文档 写得非常详细,使用也很简单,有兴趣的童鞋可以去看看。

你可能感兴趣的:(代理)