REST Client插件需重载窗口、使用.http后缀、首行为“方法+空格+完整URL”,Header与Body间有且仅一个空行,变量须定义在文件顶部并用{{var}}引用。

REST Client 插件装完就能用,但不重启窗口、不设对文件后缀、不写对首行格式,90% 的请求会静默失败或报 Invalid request method。
装完必须重载窗口,否则 Ctrl+Alt+R 没反应
插件安装后不会自动激活语言服务器,VSCode 的 REST Client 是基于语言服务的扩展,热重载不可靠。不重载,命令面板里搜不到 Send Request,右键菜单也不出现该选项。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Developer: Reload Window并执行 - 确认状态栏右下角出现
HTTP图标;打开任意.http文件应有语法高亮和行号左侧的发送图标 - 如果仍无响应,检查是否被其他 HTTP 类插件(如
Thunder Client或旧版HTTP Request)禁用或冲突
.http 文件首行必须是 “方法 + 空格 + 完整 URL”
REST Client 不解析裸 URL,也不接受 curl 命令、Postman 导出的 JSON 或带协议头(如 HTTP/1.1)的写法。首行错一个字符,整个请求块就无效。
- ✅ 正确:
GET https://httpbin.org/get、POST https://api.example.com/v1/users - ❌ 错误:
get https://...(小写方法)、/users(缺协议)、GET https://... HTTP/1.1(多余协议版本)、curl -X GET ...(shell 语法) - URL 中含中文或空格?直接写,插件会自动 URI 编码;但
&符号要放在 query 里,如GET https://api.com?q=你好&lang=zh
Header 和 Body 之间只能有一个空行,多一个少一个都 400
这是最隐蔽的失败点:空行数不对,body 就会被当成 header 解析,或 header 被吞掉,后端收不到 Content-Type 或认证头,返回 400 或 415。
- ✅ 正确结构(注意空行位置):
POST https://httpbin.org/post Content-Type: application/json { "name": "test" } - ❌ 常见错误:header 行末尾有空格、body 首行缩进、header 和 body 之间有两个空行、body 前加了注释行(
#不能放在这儿) - Bearer Token 写法:
Authorization: Bearer {{token}};{{token}}值里不能带引号,否则服务器收到的是"abc123"而非abc123
变量定义必须在文件顶部,且作用域只限当前文件
变量不是全局生效的,也不是靠注释或设置里的环境名自动切换的。想跨请求复用 host 或 token,得手动定义并引用,否则每次改 URL 都得硬编码。
- ✅ 顶部定义:
@host = https://api.dev.example.com @token = abc123xyz GET {{host}}/users Authorization: Bearer {{token}} - ❌ 错误做法:把
@host = ...写在请求块中间、用短横线命名(如@api-url)、或指望.rest-client文件自动加载(它已被弃用,新版只认settings.json中的rest-client.environmentVariables) - 敏感值别硬写:用
@token = {{env:API_TOKEN}},然后在终端运行export API_TOKEN=xxx再启动 VSCode
真正难的不是写请求,而是当响应空白、超时或 401 时,得立刻判断是网络问题、证书问题、变量未展开,还是空行多了一行——这些细节没有错误弹窗,全靠你盯住语法和空行数。


















