REST Client 是 VSCode 中最轻量的 HTTP 请求工具,但需重启、正确后缀(.http)、严格语法(如冒号后仅一空格、首行方法+URL同行)才能生效;环境变量作用域优先级为文件内>工作区>.rest-client>全局,且不支持自动登录态或响应断言。

直接用 VSCode 内置功能发不了 API 请求,必须装扩展;REST Client 是目前最轻量、语法最贴近 HTTP 协议的选择,但装完不重启、文件后缀不对、冒号后多空格,都会导致 Invalid request method 或根本没反应。
安装 REST Client 并确认它真在工作
别信“装完就能用”——90% 的失败源于没重启或语言模式没切对。
- 在扩展面板(
Ctrl+Shift+X)搜REST Client,只认作者是Huachao Mao的那个,别点错名字相近的替代品 - 安装后必须重启 VSCode;部分版本不重启,快捷键
Ctrl+Alt+R和语法高亮压根不加载 - 新建文件,保存为
test.http(不是.txt,也不是没后缀),输入GET https://httpbin.org/get,看右下角语言模式是不是自动变成HTTP;如果不是,点击右下角 →Configure File Association for '.http'→ 选HTTP - 光标停在
GET行任意位置,按Ctrl+Alt+R(Windows/Linux)或Cmd+Alt+R(Mac),弹出Sending request...才算真正生效
.http 文件语法容错率极低,一个空格就报错
它不解析 curl,不认 JS 注释,也不接受缩进式 JSON body——所有格式错误都会被当成无效请求,返回 400 或 Invalid request method。
- 第一行必须是方法 + URL 同行:比如
POST https://api.example.com/login,不能拆成两行,也不能加curl -X POST - Header 每行一个,格式为
Key: Value,冒号后**必须且只能有一个空格**:Content-Type: application/json✅,Content-Type:application/json❌ - Header 和 Body 之间**必须空一行**;Body 开头不能有空格或空行,否则整段被当注释忽略
- JSON Body 必须顶格写:
{ "name": "Alice" }✅,{ "name": "Alice" }❌(首字符前有空格) - 中文、空格、
&等参数直接写进 URL,GET https://api.com?q=你好&sort=desc会被自动 URI 编码,不用手写%E4%BD%A0
环境变量定义位置决定它能不能被读到
{{token}} 始终为空?不是变量写错了,大概率是定义位置错了——作用域优先级很明确,硬编码在文件里反而最安全。
- 文件内定义(最高优先级):
@host = https://dev.api.com必须写在.http文件最顶部,顶格、无空格、无注释,只对当前文件生效 - 工作区级配置(推荐):在项目根目录建
.rest-client(无后缀),内容如@token = abc123,所有.http文件都能读,且可加进.gitignore避免泄露敏感信息 - 全局环境配置(最低优先级):VS Code 设置里搜
REST Client: Environment Variables,填 JSON 格式如{"dev": {"host": "https://dev.api.com"}},再用Ctrl+Alt+E切换环境;但一旦工作区有同名变量,它就完全被覆盖
别指望 REST Client 处理登录态或做断言
它只是个“发请求 + 看响应”的工具,没有 Cookie 自动管理,也不支持 pm.response.code === 200 这类断言逻辑。需要这些能力,得换 Thunder Client 或切到终端跑 curl + jq。
- 要维持登录态,得手动从响应里提取
Set-Cookie,再在后续请求中加Cookie: xxx头 - 要验证字段值,只能肉眼扫 JSON 响应;想自动化校验,就得写脚本或换工具
- 如果别人给了你一段
curl命令,直接粘到 VSCode 终端里执行更可靠,尤其涉及-F表单上传或复杂 header 时
真正卡住人的往往不是功能不会用,而是 @host 没顶格、: 后多打了一个空格、或者 .http 文件被当成纯文本——这些细节不检查,再简单的请求也发不出去。


















