VS Code 通过 REST Client 扩展支持 API 测试,需用 .http 或 .rest 文件,以 ### 分隔请求块,正确书写方法、URL、Headers(冒号分隔)、Body(空行后顶格写),变量声明 @xxx = ... 必须置于首个 ### 前且无空行隔开,引用用 {{xxx}},拼写和位置错误会导致静默失败或“Cannot resolve variable”。

VS Code 本身不内置 API 测试功能,但通过 REST Client 扩展可以零配置发起 HTTP 请求、查看响应、管理环境变量,比 Postman 轻量,适合嵌入开发流。关键在于请求文件的写法和环境配置是否正确——写错一行注释格式或漏掉空行,REST Client 就会静默失败。
如何写一个能被 REST Client 识别的 .http 文件
REST Client 只认 .http 或 .rest 后缀的文件,且必须用特定语法组织请求。它不是 JSON/YAML 解析器,而是基于“空行分隔 + 注释标记”的纯文本解析器。
- 每条请求以
###开头(三个井号,前后必须有空行),否则会被忽略 - 方法 + 空格 + URL 必须在同一行,例如:
GET https://httpbin.org/get - Header 写在请求行下方,每行一个,用冒号分隔,如:
Content-Type: application/json - Body(如 JSON)需在 Headers 后再空一行,且不能缩进(否则会被当作文本内容而非有效 body)
- 中文注释必须用
#开头,且不能出现在请求行或 Header 行内(否则解析中断)
如何在请求中动态替换变量(比如 token 或 host)
硬编码 URL 和 token 会导致测试文件无法复用。用 @host、@token 这类变量声明 + variables 块是唯一方式,且必须放在文件顶部、第一个 ### 之前。
- 声明变量:在文件开头写
@host = https://api.example.com,然后请求里写GET {{host}}/users - 支持嵌套:如
@auth = Bearer {{token}},再在 Header 中写Authorization: {{auth}} - 多环境切换靠不同
.http文件或手动改@变量值;不支持像 Postman 那样的环境切换 UI - 变量值里的空格、特殊字符必须 URL 编码,比如
@path = %2Fv1%2Fsearch,否则拼接后 404
为什么点击 “Send Request” 没反应或报错 “Cannot resolve variable”
这是最常卡住新手的问题,根本原因几乎都是语法位置错误,而不是扩展没装好。
- 检查是否误把
###写成##或####—— 只有严格三个#才触发请求块识别 - 确认变量声明(
@xxx = ...)在第一个###之前,且没有空行隔开;一旦中间插了普通文本或空行,变量就失效 - 响应窗口打不开?可能是 VS Code 终端区被占满,试试关掉其他终端标签页,或手动按
Ctrl+Shift+P→ 输入REST Client: Send Request强制触发 - 报
Cannot resolve variable 'xxx':90% 是变量名拼错(大小写敏感),或该变量未声明但已在请求中引用
真正麻烦的不是发请求,而是维护多个服务地址、认证方式、版本路径时的变量耦合。比如 @host 和 @version 分开声明后,在 URL 里写 {{host}}{{version}}/users 看似灵活,但一旦某接口不走 version 路径,就得额外加变量或删拼接 —— 这种细节不会报错,但会让后续调试变成猜谜。










