用 Proxyman 调试 NodeJS 中的 OpenAI API

用 Proxyman 调试 NodeJS 中的 OpenAI API 的封面图

本教程将介绍如何编写一个简单的 NodeJS 服务器和聊天客户端,由服务器调用 OpenAI API(/chat/completions),并使用 Proxyman 检查 HTTP/HTTPS 流量。当你想调试使用 OpenAI 时背后发生的事情,这篇教程会很有帮助。

通过本教程,你将完成以下内容:

  • 设置 Proxyman macOS
  • 使用 Express JS 开发一个简单的 NodeJS 服务器,用于调用 OpenAI
  • 一个简单的 HTML 聊天客户端,用于向 NodeJS 服务器发送消息
  • ✅ 使用 Proxyman 抓取 OpenAI 的 HTTP/HTTPS 请求和响应

使用 Proxyman 抓取 OpenAI 的 HTTP/HTTPS 请求和响应

1. 前提条件

2. 设置 Proxyman

  1. 从 Proxyman.com 安装 Proxyman
  2. 打开 Proxyman -> 进入 Certificate Menu -> Install Certificate for macOS -> 按照步骤安装证书

为 macOS 安装 Proxyman 证书

至此,Proxyman 已可以拦截你 macOS 上的任何 HTTPS 流量。

3. 启动 ChatGPT 示例应用

我们需要一个简单的 RESTful 服务器,用来调用 ChatGPT API。

让我们从 GitHub 克隆源代码并运行它。

git clone https://github.com/ProxymanApp/chatgpt-nodejs-app
cd https://github.com/ProxymanApp/chatgpt-nodejs-app
npm install
  • 打开 .env 文件,将 OPENAI_API_KEY 更新为你自己的 OpenAI API 密钥。你可以从 OpenAI 控制台 获取。
OPENAI_API_KEY=your_openai_api_key
  • 启动 NodeJS 服务器
npm run dev

这将在 3000 端口启动 NodeJS 服务器,并在 http://localhost:3000 提供一个静态 HTML 文件。

试着和 GPT 聊聊,看看它是如何工作的。

ChatGPT 示例应用

下面是它的基本结构示意图:

NodeJS 服务器

  1. 聊天客户端向 NodeJS 服务器发送 POST /chat 请求,请求中包含用户消息
  2. NodeJS 服务器调用 OpenAI API:https://api.openai.com/v1/chat/completions
  3. NodeJS 服务器将响应返回给聊天客户端
  4. 聊天客户端显示该消息

我们不让聊天客户端直接调用 API,原因是我们希望对聊天客户端隐藏 OpenAI 密钥。

要理解代码,请查看 server.js 和 index.html 文件。

常见问题

1. 我想看看 NodeJS 服务器如何通过 https://api.openai.com/v1/chat/completions 向 OpenAI 发送请求

回答:

幸运的是,Proxyman 只需一键即可抓取从聊天客户端到 NodeJS 服务器的 HTTP/HTTPS 流量。

  1. 打开 Proxyman -> Setup Menu -> Automatic Setup -> 选择你常用的终端(我用的是 iTerm)-> 点击 Open new Terminal 按钮

Automatic Setup - 抓取 NodeJS 服务器的 HTTPS 流量

  1. 在该终端中运行 NodeJS 服务器
npm run dev
  1. 回到网页浏览器,访问 http://localhost:3000 打开 ChatGPT 示例应用
  2. 与 GPT 聊几次,看看它是如何工作的
  3. 回到 Proxyman,你将看到从聊天客户端到 NodeJS 服务器的 HTTP/HTTPS 流量

使用 Proxyman 抓取 OpenAI 的 HTTP/HTTPS 请求和响应

如你所见,当 NodeJS 服务器调用 OpenAI 时,Proxyman 会自动抓取 HTTP/HTTPS 流量。

2. 我想查看聊天客户端发出的 /chat 请求详情。

回答:

访问 localhost:3000 并聊几次时,Proxyman 默认无法抓取 localhost:3000 的流量。原因在于,所有 localhost 流量都不会经过代理,这是 macOS 系统的工作方式。

当前版本的 Proxyman 可以通过 Setup → Automatic Setup 打开一个已预先配置好的 Chrome 窗口,这是抓取浏览器 localhost 流量最简单的方法。如果无法使用该设置,下面的 /etc/hosts 方法仍是一个有用的备选方案。

sudo vim /etc/hosts

将以下内容添加到该文件中:

127.0.0.1 proxyman.debug
::1 proxyman.debug

你可以将 proxyman.debug 改为任意域名。

保存文件并退出。

现在,打开 Google Chrome 并访问 http://proxyman.debug:3000,聊几次,你就能看到聊天客户端的 /chat 请求详情。

抓取 localhost 流量

更多内容请参阅:我看不到 localhost 服务器的任何请求

4. 下一步

本教程演示了如何使用 Automatic Setup 抓取 Node.js 服务器发往 OpenAI 的 HTTP/HTTPS 流量。示例使用的是 Chat Completions 端点。较新的项目可能会改用 Responses API;由于两种调用都发往 api.openai.com,Proxyman 两者都能抓取。

请将 OPENAI_API_KEY 保存在服务器端,存放在版本控制之外,切勿放入浏览器代码中。在导出或分享 Proxyman 日志之前,请删除 Authorization 请求头以及任何私密的提示词或响应数据。如果密钥已泄露,请立即在 OpenAI 控制台中替换该密钥。

Automatic Setup 同样支持:

  • NodeJS
  • Python
  • Ruby
  • PHP
  • Go

如有任何疑问,请查阅 Proxyman 文档。


Proxyman 是一款高性能的 macOS/Windows/Linux 应用,可帮助开发者抓取 iOS 设备、iOS 模拟器和 Android 设备上的 HTTPS 流量。

前往 https://proxyman.com 获取。

Noah Tran
Noah Tran

最后修订于 2026年7月17日。 新增 Responses API 相关说明、API 密钥安全提示,以及更新后的 localhost 浏览器设置。

查看 Node.js 应用背后的 API 调用

在 Proxyman 终端中运行服务器,检查对 OpenAI Responses 或 Chat Completions API 的调用。

下载 Proxyman