用 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 请求和响应

1. 前提条件
- Proxyman macOS(从 Proxyman.com 下载)OpenAI
2. 设置 Proxyman
- 从 Proxyman.com 安装 Proxyman
- 打开 Proxyman -> 进入 Certificate Menu -> Install Certificate for macOS -> 按照步骤安装证书

至此,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 聊聊,看看它是如何工作的。

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

- 聊天客户端向 NodeJS 服务器发送 POST /chat 请求,请求中包含用户消息
- NodeJS 服务器调用 OpenAI API:
https://api.openai.com/v1/chat/completions - NodeJS 服务器将响应返回给聊天客户端
- 聊天客户端显示该消息
我们不让聊天客户端直接调用 API,原因是我们希望对聊天客户端隐藏 OpenAI 密钥。
要理解代码,请查看 server.js 和 index.html 文件。
常见问题
1. 我想看看 NodeJS 服务器如何通过 https://api.openai.com/v1/chat/completions 向 OpenAI 发送请求
回答:
幸运的是,Proxyman 只需一键即可抓取从聊天客户端到 NodeJS 服务器的 HTTP/HTTPS 流量。
- 打开 Proxyman -> Setup Menu -> Automatic Setup -> 选择你常用的终端(我用的是 iTerm)-> 点击
Open new Terminal按钮

- 在该终端中运行 NodeJS 服务器
npm run dev
- 回到网页浏览器,访问 http://localhost:3000 打开 ChatGPT 示例应用
- 与 GPT 聊几次,看看它是如何工作的
- 回到 Proxyman,你将看到从聊天客户端到 NodeJS 服务器的 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 服务器的任何请求
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 获取。
