REST Client 插件可在 VSCode 内直接发送 HTTP 请求:新建 test.http 文件,写 GET https://httpbin.org/get,光标停住按 Ctrl+Alt+R(macOS 为 Cmd+Alt+R)即可看到 JSON 响应;注意文件后缀、语言模式、空行规范、Content-Type 显式声明、变量作用域及响应格式化条件。

直接用 REST Client 扩展,不用装 Postman、不写 curl、不切窗口,API 返回数据在 VSCode 里点一下就出来。
怎么确认 REST Client 已生效
装完插件后别急着写请求,先验证是否真能跑起来:
- 新建一个文件,保存为
test.http(必须是.http或.rest后缀) - 输入最简请求:
GET https://httpbin.org/get - 光标停在该行,按
Ctrl+Alt+R(Windows/Linux)或Cmd+Alt+R(macOS) - 右下角弹出 “Sending request…” → 右侧新标签页显示 JSON 响应 → 成功
常见卡点:Send Request 按钮不出现?检查右下角语言模式是不是 HTTP(点一下手动选);快捷键无效?大概率被 Vim 插件或其它扩展劫持,去 keybindings.json 里搜 rest-client.request 重绑。
POST 带 JSON body 怎么写才不报 400
REST Client 对空行和冒号极其敏感,错一个就当 header 解析,直接 400:
- 请求行(如
POST /path)和 headers 之间必须有且仅有一个空行 - 每个 header 必须独占一行,
:后建议加一个空格(Content-Type: application/json✅,Content-Type:application/json❌) - body 前必须再空一行,且
Content-Type: application/json必须显式声明 - JSON body 不要包裹在引号里,也不支持注释(
//或/* */会解析失败)
正确示例:
POST https://httpbin.org/post
Content-Type: application/json
<p>{
"name": "Alice",
"age": 30
}变量怎么用才不踩坑
@host = https://api.dev.example.com 这种定义看着简单,但作用域和替换范围容易误判:
- 变量块必须放在文件最上方,且每行以
@开头;{{host}}只在请求行和 headers 中生效,body 里的 {{host}} 不会被替换 - 跨文件复用变量?不能靠
###引入,得写进 VSCode 全局配置:rest-client.environmentVariables(放settings.json里) - 敏感值(如 token)别硬编码,改用
@token = {{env:API_TOKEN}},然后终端执行export API_TOKEN=xxx - 变量不支持运行时函数,
@now = {{timestamp()}}是无效的,时间戳得自己生成再粘贴
响应看不清 JSON?别急着复制粘贴
REST Client 默认对 Content-Type: application/json 响应自动格式化+高亮,但有几个隐藏条件:
- 响应头里必须带
Content-Type: application/json(服务端没返回?你没法强制它加) - 如果返回的是
text/plain或没带 type,哪怕内容是 JSON,也只会当纯文本显示 - 想强制格式化?右键响应体 →
Format Response(仅限 JSON/XML/HTML) - 图片、二进制响应(如 PDF)会原样渲染,但不支持下载按钮,得手动右键“另存为”
真正容易被忽略的是:它不维护登录态,Set-Cookie 不会自动带入后续请求,要手动提取并设成 @cookies = ... 变量再引用。


















