anyproxy代理入门

关于anyproxy

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

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

  • 同时兼容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,按提示扫描二维码安装。web

image

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

image

rule文档的使用

对于前端工程师来讲,使用代码最重要的一个用途就是拦截请求/响应,在客户端与服务端都无感知的状况下更改调试脚本、修改响应头内容等。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的官网文档 写得很是详细,使用也很简单,有兴趣的童鞋能够去看看。网络

相关文章
相关标签/搜索