必须认准作者Huachao Mao、ID为humao.rest-client的插件,安装后重载窗口,文件保存为.http后缀且首行顶格写合法请求(如GET https://api.example.com/users),三者缺一不可,否则快捷键Ctrl+Alt+R/Cmd+Alt+R无效。

装对插件、保存为 .http 后缀、首行写对请求格式,三者缺一不可——否则 Ctrl+Alt+R(Windows/Linux)或 Cmd+Alt+R(macOS)根本不会触发发送。
怎么确认 REST Client 插件装对了
VSCode 扩展市场搜 “REST Client” 会出现多个同名插件,必须认准作者是 Huachao Mao、ID 是 humao.rest-client 的那个。安装量超 700 万、更新日志活跃到 2026 年 4 月的是正主;点进去看详情页的 “Publisher” 字段,不是 humao 的都别点安装。
装完必须重载窗口:按 Ctrl+Shift+P(macOS 是 Cmd+Shift+P),输入 Developer: Reload Window 并执行。不 reload,右下角不会出现 HTTP 图标,.http 文件也不会有语法高亮和 Send Request 命令。
- 如果重载后仍无反应,打开命令面板搜
REST Client: Switch Environment,能调出来就说明插件已加载 - 检查是否被其他插件禁用:在 Extensions 页面搜索
rest-client,确认状态是 “Enabled”,不是 “Disabled by another extension” - 别手动下载
.vsix安装——VSCode 1.80+ 对未签名插件限制变严,容易卡在 “Installing…” 或报签名校验失败
为什么 .http 文件里点 Send Request 没反应
90% 是文件没被识别为 HTTP 类型。REST Client 只响应后缀为 .http 或 .rest 的**已保存文件**。临时文件、.txt、.md、甚至无后缀的文件,快捷键和右键菜单都不会出现。
即使后缀对了,第一行也必须是合法请求行:顶格写、无注释、无空格缩进、协议完整(https:// 不能少)、不能加引号。下面这些全错:
GET "https://api.example.com/users" GET https://api.example.com/users // GET https://api.example.com/users GET https://api.example.com/users?name=张三
正确写法只有一种:GET https://api.example.com/users?name=%E5%BC%A0%E4%B8%89(中文要 URL 编码,别用 +)。
- Windows 用户注意换行符:必须是 LF(Unix 风格),不是 CRLF;否则可能报
Invalid request line - 光标必须停在请求块内——不能在空行、注释行、或
###分隔符上 - 用了
{{var}}却没定义变量?它不会报错,而是静默失败,请求发不出
怎么写一个带 JSON body 和 Authorization 的 POST 请求
结构必须严格遵循 “请求行 → 请求头 → 空行 → body”,三者之间不能错位。多一个空行、少一个空行、header 冒号后没空格、body 缩进了,都会导致 body 被忽略或 header 解析失败。
常见错误:
-
Content-Type:application/json(冒号后没空格)→ 失效 -
Authorization: Bearer{{token}}(Bearer 和 token 间没空格)→ 后端拒绝,返回 400 或 401 - JSON body 顶格写但用了单引号:
{'name': 'alice'}→ 后端解析失败 - 复制 AI 生成的 JSON,里面混入了不可见的零宽字符或 smart quote → 发出去的 body 是乱的
正确示例:
POST https://api.example.com/v1/users
Content-Type: application/json
Authorization: Bearer {{token}}
{"name":"alice","email":"alice@example.com"}
注意:Authorization 头必须紧挨着请求行写,中间不能有空行;body 前必须且仅有一个空行;JSON 必须用英文双引号,且不能缩进。
环境变量和变量作用域怎么不踩坑
变量不是写上 {{host}} 就自动有值。它分三种来源,优先级从高到低:文件内 @host = 定义 > 工作区 rest-client.environmentVariables 配置 > 全局 .rest-client 文件。跨文件不共享,@ 定义只对当前请求块生效。
工作区配置写在 .vscode/settings.json 里,格式必须严格:
{
"rest-client.environmentVariables": {
"dev": {
"host": "https://api.dev.example.com",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
}
}
}
然后在 .http 文件顶部写:@env = dev 切换环境,再用 {{host}} 引用。
- 变量名不能含短横线(
-)、点号(.)或空格,@auth-token或@api.v1都会解析失败 - 不支持嵌套引用:
@url = {{host}}/users无效,只能写死或拆成两步 - Token 别硬编码进文件,尤其别提交到 Git;用环境变量 +
$shared放公共配置,但敏感值(如 token)只放在具体环境里
最易被忽略的是:二进制响应(PDF、PNG、ZIP)默认以 UTF-8 渲染,一片空白 ≠ 请求失败——右键响应窗口选 View as Binary 或 Save Response As 才能看到真实内容。


















