httpyac插件安装后需手动关联.http文件类型,否则无语法高亮、发送按钮和变量功能;必须显式声明content-type且json body须紧凑无缩进;变量优先级为全局<工作区<请求内。

HttpYac 插件装完不能直接用,必须手动关联 .http 文件类型,否则语法不亮、发送按钮不出现、变量不生效——这是最常卡住人的第一步。
为什么新建的 .http 文件没高亮也没发送按钮?
插件安装后不会自动把 .http 后缀映射到 HTTP 语言模式。VS Code 默认当它是纯文本,所以所有功能都失效。
- 打开设置(
Ctrl+,),搜files.associations,在「Settings (JSON)」里加这一行:"*.http": "http" - 或者更快速:新建文件 → 写完请求 → 按
Ctrl+Shift+P→ 输入Change Language Mode→ 回车 → 选HTTP→ 点右下角「Configure File Association for '.http'」 - 千万别保存成
test.txt再手动改后缀名——Windows 资源管理器默认隐藏扩展名,容易误操作导致实际仍是.txt
POST 请求发不出去或返回 400 怎么办?
HttpYac 不会自动补 Content-Type,也不会帮你格式化 JSON Body;缩进、换行、中文引号都会导致解析失败。
- 必须显式写上
Content-Type: application/json(注意冒号后有空格) - Body 必须是紧凑 JSON(no whitespace, no trailing comma, ASCII quotes only):
{"name":"foo","age":25}✅{\n "name": "foo"\n}❌ - 如果 Body 太长,建议拆到单独文件,用
@./body.json引入,避免手误
变量怎么用才不冲突?优先级到底是啥?
HttpYac 的变量作用域分三层,同名时低优先级会被高优先级覆盖,但很多人只设了全局变量,却在请求里忘了重写工作区或内联值。
- 全局变量:在
.vscode/httpyac.json里定义,对整个工作区生效 - 工作区变量:在项目根目录建
httpyac.json,覆盖全局同名变量 - 请求内变量:在单个
.http文件顶部用@host = api.example.com定义,仅对该请求生效 - 调试技巧:在请求里加一行
GET http://{{host}}/debug,看最终解析出的 URL 是什么
多个环境(dev/staging/prod)怎么快速切换?
HttpYac 支持环境配置,但不是靠“选环境”下拉框,而是靠 @env 标签 + 对应 JSON 文件匹配。
- 在
.http文件开头写:@env = dev - 在项目根目录放
httpyac.dev.json和httpyac.prod.json,内容结构一致,只改 host / token 等字段 - 不声明
@env时,默认读httpyac.json;声明后优先找httpyac.{env}.json - 注意:文件名必须严格匹配,大小写敏感,
httpyac.DEV.json不会被识别
真正麻烦的不是语法,而是变量加载时机和文件路径解析——比如 @./auth.token 在嵌套子目录下会相对当前 .http 文件定位,不是相对项目根目录;这点很容易被忽略,直到 token 总是读不到才回头查路径。











