Postman 10.12.4+原生支持WebSocket:新建→WebSocket Request,输入ws://或wss://地址,点击Connect;支持Text/JSON/XML/HTML/Binary格式发送,需注意JSON语法正确性及UTF-8编码,接收消息依赖服务端主动推送且需排查鉴权、心跳、连接状态等静默失败原因。
postman 10.12.4 及以上版本原生支持 websocket,不需要插件或 node.js 脚本;低于 8.5 的版本不支持,强行尝试会找不到 websocket request 类型。
怎么创建并连接 WebSocket 请求
新版 Postman 左上角点击 New → 选择 WebSocket Request,不是在 HTTP 方法下拉框里选。地址栏输入 ws:// 或 wss:// 开头的 URL(比如 wss://ws.postman-echo.com/raw),**不能填 http://**。点击右侧 Connect 按钮后,状态栏变绿色且显示 Connected 才算成功。
- 连接失败常见原因:URL 写成
http、服务端未运行、防火墙拦截、域名解析失败 - 如果服务端要求鉴权,必须在
Headers选项卡里手动加字段,比如Authorization: Bearer xxx或api-key: abc123—— WebSocket 握手本质是 HTTP Upgrade 请求,Header 在这里传 -
Query params可以直接拼在 URL 后,如wss://example.com/ws?token=xxx,部分服务端靠这个做校验
发送消息时格式和编码要注意什么
消息编辑区左下角有格式切换按钮:Text、JSON、XML、HTML、Binary。选 JSON 后输入合法 JSON,Postman 会自动缩进和高亮;但**它不会自动加引号或补逗号,语法错误会导致发送失败或服务端拒收**。
- 发送纯文本(如
Hello)用Text模式最稳妥 - 发送 JSON 时,确保根节点是对象或数组,不要多出逗号、单引号、注释
-
Binary模式只支持Base64或Hexadecimal输入,不是粘贴二进制文件 —— 真要发二进制,得先转 Base64 字符串 - 消息内容里含中文或特殊符号,不用额外编码,Postman 默认 UTF-8 发送
为什么收不到服务端推送的消息
连接成功 ≠ 消息通路正常。Postman 的接收区只显示服务端主动发来的帧,但很多问题会让它“静默”:
WebSocket 8.18.2 是该协议规范的一个重要迭代版本,主要优化了连接稳定性与数据传输效率。它通过全双工通信机制,允许客户端与服务器在单一长连接上实时交换数据,大幅降低传统 HTTP 轮询的开销。该版本增强了心跳保活、自动重连及二进制帧传输能力,适用于即时通讯、在线游戏及金融行情推送等低延迟场景,为开发者提供更可靠的实时网络交互基础。
- 服务端没真正下发数据(比如鉴权失败后静默关闭连接,不发 error 帧)
- 你发的消息格式不符合服务端协议(例如服务端期待
{"cmd":"ping"},你发了ping文本) - 服务端设置了心跳机制,但 Postman 不自动响应
Ping帧,超时后被踢下线(此时状态栏可能还显示Connected,实际已断) - Postman 窗口最小化或切到后台太久,系统休眠导致 TCP 连接中断,但界面未及时刷新状态
建议打开 Messages 面板右上角的 Raw 视图,确认收到的是完整帧,而不是空行或乱码。
历史记录和重连容易被忽略的细节
每次 Connect 都是一个新会话,之前的收发记录保留在当前标签页,但关闭标签就丢。想复用,得提前点 Save(在地址栏下方)存为请求;否则只能从左侧 History 里找,但 History 里只存 URL 和连接动作,不存具体消息内容。
- 重连时,Postman 不会自动恢复上次发送的 Header 或 Query 参数,要手动检查
- 如果服务端对连接频次有限制(如 1 分钟内只允许 3 次 handshake),连续点
Connect/Disconnect可能触发限流,报错429 Too Many Requests - 测试多客户端场景时,Postman 无法模拟多个并发连接 —— 每个 WebSocket Request 标签页是独立连接,但没批量管理能力
真正复杂的交互(比如按顺序发 A→等 B 返回→再发 C),Postman 做不了自动化断言,得切到 wscat 或写脚本。

















