抓取 axios(NodeJS)的 HTTP/HTTPS 请求

抓取 axios(NodeJS)的 HTTP/HTTPS 请求 的封面图

本文内容

  • 如何使用 Proxyman 抓取 NodeJS 中 axios 库的 HTTP/HTTPS 请求与响应

1. 使用 axios 发起 HTTPS 请求

如果你是 JavaScript/NodeJS 开发者,通常会使用 axios 库发起 HTTP/HTTPS REST 请求。Axios 提供了基于 Promise 的便捷 API,让开发者更轻松地发起请求。

它的优势如下:

  1. 易于使用:Axios 提供了简单易用的 HTTP 请求 API,因此深受 Web 开发者青睐。
  2. 跨平台兼容:Axios 既可以在浏览器中使用,也可以在 Node.js 中使用,是开发 Web 应用时的通用之选。
  3. 支持 Promise:Axios 支持 Promise,可以实现异步请求,并让响应处理更加轻松。
  4. 支持取消请求:Axios 提供了取消请求的机制,适用于用户离开页面或请求耗时过长等场景。
  5. 拦截器:Axios 支持拦截器,可在请求发送或响应接收之前对其进行修改。
  6. 错误处理:Axios 提供了完善的错误处理,便于开发者轻松处理应用中的错误。
  7. 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);
Proxyman:使用 axios 库发起 HTTP 请求
Proxyman:使用 axios 库发起 HTTP 请求

运行方法:

  1. 将示例代码保存为 main.js
  2. 在该目录下打开终端,运行 npm init -y 创建一个简单的 package。
  3. 安装 axios:npm install axios
  4. 运行 node main.js
  5. 完成。

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 请求与响应。

  1. 前往 https://proxyman.com/ 下载最新版 macOS App
  2. 在你的 Mac 上安装 Proxyman 证书。打开 Certificate 菜单 -> Install Certificate on this Mac… -> 点击 “Install & Trust” 按钮即可完成安装。
在当前 MacBook 上安装 Proxyman 根证书
在当前 MacBook 上安装 Proxyman 根证书
  1. 打开 Setup 菜单 -> Automatic -> 点击 “New Terminal app…”
打开预配置的终端 App,无需任何配置即可抓取 Axios 的 HTTP 流量
打开预配置的终端 App,无需任何配置即可抓取 Axios 的 HTTP 流量
  1. 随后会显示新的终端 App。这是一个预配置好的 Apple 终端 App,会自动抓取并解密来自 Axios 的 HTTPS 流量。
  2. 在新的终端 App 中再次运行 node main.js,现在所有 HTTP/HTTPS 流量都会被 Proxyman 抓取并解密 🎉
发起 axios 请求,并在 Proxyman 中查看 HTTP 请求
发起 axios 请求,并在 Proxyman 中查看 HTTP 请求
  1. 完成。

  • 如果你想了解其背后的工作原理,请查阅 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/ 获取。

Noah Tran
Noah Tran

最后修订于 2026年7月17日。 新增当前 Node.js 库的支持范围,以及终端排查检查项。

看清你的 Node.js 请求究竟发送了什么

在 Proxyman Automatic Setup 终端中运行脚本,检查其请求头、请求体、耗时和响应。

获取 Proxyman