GoLand .http 文件需严格遵循语法:首行方法+URL,Header与body间空一行,JSON body须配Content-Type且用英文双引号,变量如{{host}}需顶部定义,400错误多因类型不匹配或非法JSON。

GoLand 内置 HTTP 客户端能直接发请求、看响应、比对历史结果,但不是所有 .http 文件写法都生效——尤其涉及重定向、认证头、JSON body 或 multipart 表单时,容易卡在 401、400 或空响应上。
如何写一个能跑通的 .http 文件
HTTP 客户端不依赖项目结构,但必须用正确语法声明协议、路径、头和 body。常见错误是漏掉空行、混用双引号/单引号、或把 JSON 当字符串硬塞。
- 第一行必须是请求方法 + 空格 + URL,例如:
GET http://localhost:8080/api/users - Header 和 body 之间必须有且仅有一个空行
- JSON body 要加
Content-Type: application/json,且 body 必须是合法 JSON(不能有尾随逗号、未转义引号) - 带变量的 URL 可用
{{host}},需在文件顶部定义:@host = http://localhost:8080 - 不要在 URL 中写
http://以外的协议(比如ws://),会报Unsupported protocol: ws
POST 带 JSON body 时为什么总返回 400
绝大多数 400 是因为 Content-Type 不匹配或 body 格式非法,而不是后端逻辑问题。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 确认 header 中写了
Content-Type: application/json,且大小写完全一致 - body 里不能出现 GoLand 自动补全的中文引号(“”),必须是英文双引号("")
- 如果 body 含变量(如
{{user_id}}),确保该变量已在文件顶部定义,否则会被当作文本字面量发送 - 调试技巧:先把 body 粘贴进在线 JSON 校验器(如 jsonlint.com),再复制回
.http文件
如何复用 OpenAPI 规范自动补全请求
如果你的项目有 openapi.yaml 或 swagger.json,GoLand 能基于它生成请求模板并校验参数类型。
- 在
.http文件中光标定位到空行,按Ctrl+Enter(macOS 为Cmd+Enter),选择Insert request from OpenAPI spec - 选中对应 path 和 method,GoLand 会自动填入 URL、headers、示例 body 和 query 参数占位符
- 注意:只识别根目录或
docs/下的 OpenAPI 文件;若文件在子模块中,需手动配置File → Settings → Tools → HTTP Client → Default OpenAPI specification - 生成的
{{variable}}占位符不会自动替换,必须手动赋值,否则请求会发错值
调试时看不到响应头或原始二进制响应体
默认视图只显示格式化后的 JSON/XML,但有些接口返回纯文本、图片或自定义 header(如 X-RateLimit-Remaining),需要切换查看模式。
- 响应区右上角有三个图标:
Formatted(自动解析)、Preview(渲染 HTML/图片)、Raw(原始字节流) - 点
Raw才能看到完整响应头,包括Set-Cookie、Content-Disposition等 - 若响应是 gzip 压缩的,
Raw模式下会看到乱码,此时需关掉服务端压缩,或改用 curl +-H "Accept-Encoding: identity"绕过 - HTTP 客户端不保存 cookie 上下文,每次请求都是干净状态;要模拟登录态,得手动复制
Set-Cookie值,粘贴到下个请求的Cookie:header 里
最常被忽略的是变量作用域和空行规则——多一个空行或少一个换行,整个请求就静默失败,控制台还不报错。建议从官方示例 rest-api.http 模板开始改,而不是从零手敲。

















