抓取 axios(NodeJS)的 HTTP/HTTPS 请求
本文内容
- 如何使用 Proxyman 抓取 NodeJS 中 axios 库的 HTTP/HTTPS 请求与响应
1. 使用 axios 发起 HTTPS 请求
如果你是 JavaScript/NodeJS 开发者,通常会使用 axios 库发起 HTTP/HTTPS REST 请求。Axios 提供了基于 Promise 的便捷 API,让开发者更轻松地发起请求。
它的优势如下:
- 易于使用:Axios 提供了简单易用的 HTTP 请求 API,因此深受 Web 开发者青睐。
- 跨平台兼容:Axios 既可以在浏览器中使用,也可以在 Node.js 中使用,是开发 Web 应用时的通用之选。
- 支持 Promise:Axios 支持 Promise,可以实现异步请求,并让响应处理更加轻松。
- 支持取消请求:Axios 提供了取消请求的机制,适用于用户离开页面或请求耗时过长等场景。
- 拦截器:Axios 支持拦截器,可在请求发送或响应接收之前对其进行修改。
- 错误处理:Axios 提供了完善的错误处理,便于开发者轻松处理应用中的错误。
- JSON 数据处理:Axios 可以自动解析从服务器接收的 JSON 数据,并转换请求中发送的 JSON 数据。
以下示例代码演示了如何使用 axios 库发起请求。
import axios from 'axios';
var response = await axios.get("https://google.com");
console.log(response);
response = await axios.get("https://httpbin.org/get?lib=axios&schema=https");
console.log(response);
response = await axios.get("http://httpbin.org/get?lib=axios&schema=http");
console.log(response);

运行方法:
- 将示例代码保存为
main.js - 在该目录下打开终端,运行
npm init -y创建一个简单的 package。 - 安装 axios:
npm install axios - 运行
node main.js - 完成。
2. 如何抓取 HTTP/HTTPS 请求与响应?
当前的问题
Axios 默认不遵循系统的 HTTP 代理配置。因此,你在 Proxyman 或其他 Web 调试代理(例如 Charles Proxy 或 Fiddler)中看不到任何 Axios 请求或响应。
要解决这个问题,我们必须手动配置代理。以下是实现方法的示例。更多信息请参阅 Axios 文档。
var response = await axios.get({
url: "https://google.com",
// Provide a Proxy config
proxy: {
protocol: 'https',
host: '127.0.0.1',
port: 9090
},
});
这种方式容易出错且耗时,因为我们必须手动修改源代码。
解决方案 ✅
幸运的是,Proxyman 提供了一项功能,无需任何配置即可帮你抓取 HTTP/HTTPS 请求与响应。
- 前往 https://proxyman.com/ 下载最新版 macOS App
- 在你的 Mac 上安装 Proxyman 证书。打开 Certificate 菜单 -> Install Certificate on this Mac… -> 点击 “Install & Trust” 按钮即可完成安装。

- 打开 Setup 菜单 -> Automatic -> 点击 “New Terminal app…”

- 随后会显示新的终端 App。这是一个预配置好的 Apple 终端 App,会自动抓取并解密来自 Axios 的 HTTPS 流量。
- 在新的终端 App 中再次运行
node main.js,现在所有 HTTP/HTTPS 流量都会被 Proxyman 抓取并解密 🎉

- 完成。
- 如果你想了解其背后的工作原理,请查阅 Automatic Setup 文档
- 如果你更喜欢使用自己的终端(iTerm2 或 Hyper),可以查阅 Manual Setup 文档。
支持的其他 NodeJS 库
Proxyman 开箱即支持:Axios、got、superagent、fetch 和 node-fetch。
总结
抓取 axios NodeJS 脚本的 HTTP/HTTPS 流量既容易出错,又耗时。不过,借助 Proxyman 的 Automatic Setup,只需一键即可完成,无需任何配置。
请在 Proxyman 打开的终端中运行 node main.js,因为该设置仅对该会话生效,且不会修改你的 shell 配置文件。如果仍然看不到流量,请检查代码是否自行提供了 Axios agent 或 proxy 选项;然后在同一终端中尝试一个普通的 Node fetch 请求,以判断问题是出在应用设置上,还是出在配置上。
Proxyman 是一款高性能的 macOS 应用,可用于抓取和检查来自 iOS 设备、iOS 模拟器和 Android 设备上的应用及域名的 HTTP(s) 流量。
前往 https://proxyman.com/ 获取。
