应只保留官方插件 humao.rest-client,禁用其他同名或近似名称插件;文件需保存为 .http 或 .rest 后缀、首行为合法请求行且编码为 utf-8 lf;光标须位于有效请求块内,header 与 body 间仅一个空行,content-type 冒号后须有空格。

插件列表里出现多个“REST Client”怎么办
VSCode 扩展市场里搜“REST Client”会出来好几个同名插件,但只有 humao.rest-client 是官方正版(作者 Huachao Mao,安装量超 700 万,2026 年 4 月更新过)。其他名称近似的——比如 rest-client(无作者前缀)、vscode-restclient 或带“Postman”“HTTP Client”字样的——都可能和它冲突,导致快捷键注册失败、右下角不显示 HTTP 标识、Ctrl+Alt+R 完全没反应。
排查方法:
- 按
Ctrl+Shift+P输入Developer: Show Running Extensions,检查是否同时启用了多个 REST 相关插件 - 禁用所有非
humao.rest-client的同类插件,尤其注意卸载旧版残留(如公司镜像源同步进来的未签名版本) - 禁用后执行
Developer: Reload Window,不要只重载扩展,要重载整个窗口
装完插件右下角不显示“HTTP”语言标识
这不是插件没生效,而是 VSCode 没把当前文件识别为 HTTP 类型。语言标识缺失,意味着语法高亮、快捷键绑定、Send Request 命令全都不会加载。
必须满足三个条件才触发:
- 文件已保存,且后缀严格为
.http或.rest(.txt、.api、无后缀都不行) - 保存后右下角手动点击该区域 →
Configure File Association for '.http'→ 选HTTP - 文件第一行顶格写合法请求行,例如
GET https://httpbin.org/get;不能有空格缩进、不能加引号、不能是注释行
Ctrl+Alt+R 按下没反应,但插件明明已启用
快捷键失效的真正原因是:VSCode 没在当前上下文激活 REST Client 的命令监听器。它只在光标落在合法请求块内时才响应。
常见卡点:
- 光标停在空行、注释行(
###分隔符也算注释)、或变量定义行(如@host = https://api.example.com)上 → 不触发 - 请求块之间没用
###隔开,而是用了---或***→ 整个文件被当单个无效块处理 - 文件编码不是 UTF-8,或换行符是 CRLF(Windows 默认)而非 LF → 插件解析请求行失败,静默跳过
- 文件里混入不可见 Unicode 字符(比如从网页复制代码时带入的零宽空格)→
Invalid request line错误但不提示
请求发出去了但返回 400/406/401 且 header 明明写了
这类错误往往不是后端拒绝,而是 REST Client 在发送前就因格式问题篡改或丢弃了部分内容。它对空行、缩进、冒号空格极其敏感,稍错就会让 header 被当 body、body 被当注释。
高频出错点:
-
Content-Type:application/json缺少冒号后空格 → 整行被忽略,后端收到text/plain - Header 和 Body 之间不是**且仅有一个**空行 → 多一个,body 被吞;少一个,body 被当 header 解析
- JSON body 首行有缩进或空格 →
{"name":"alice"}✅,{"name":"alice"}❌(开头空格) - Elasticsearch 等服务要求
GET带 body 时必须设http.allow_get_body: true,否则直接 400,和插件无关但容易误判
最常被忽略的是换行符和变量作用域:Windows 用户若用 CRLF,某些版本会解析失败;变量 {{token}} 定义在 .rest-client 里,却没通过 REST Client: Switch Environment 切换到对应环境,它就永远为空——没有报错,只有静默失败。











