.http 和 .rest 文件里的请求,格式与 IntelliJ IDEA 的 HTTP 客户端相同。响应显示在 服务 工具窗口的 HTTP 客户端 标签页中。
创建请求文件
- 工具 › 新建 HTTP 请求 会在 IDE 的草稿目录中创建草稿文件
requests.http(已存在时依次为requests_2.http等)。 - 在项目工具窗口中,新建 › HTTP 请求 会在所选文件夹中创建
.http文件。 - 任何以
.http或.rest结尾的文件都可以。
语法
变量
在 URL、请求头或请求体中写{{name}}。变量按以下顺序查找:
- 文件变量:
@name = value行。对整个文件生效,后定义的覆盖先定义的。 http-client.private.env.json中所选环境。http-client.env.json中所选环境。- 私有文件中的
$shared,然后是公共文件中的$shared。
< 插入的文件中的变量不会替换。
动态变量:
环境
环境写在http-client.env.json 里,密钥等敏感信息写在 http-client.private.env.json 里(这个文件不要提交到版本库):
http-client.env.json
运行请求
也可以点击请求行旁边边栏中的运行图标。编辑器工具栏有 运行文件中的所有请求、停止 和 运行环境:。
- “光标处的请求”是光标所在的请求块,光标不在请求块内时取上方最近的一个。
- 未保存的修改也会一起发送。
- 开始新的运行会取消正在进行的运行。
- 运行全部 按顺序执行。某个请求无法准备(例如有未解析的变量)时停止;网络错误会被记录下来,然后继续下一个请求。
响应
服务工具窗口的 HTTP 客户端 标签页左侧按时间倒序列出历史请求,显示状态、方法、名称和耗时。选中某条后显示:- 状态码、HTTP 版本、总耗时(悬停可看收到响应头的时间)和大小。
- 响应:响应体。JSON、XML 和 HTML 会自动格式化,可用 显示原始内容 / 显示格式化内容 切换。二进制响应只显示类型和大小。超过 16 MiB 的响应体会被截断。
- 标头:响应头。
- 请求:实际发出的请求(已替换变量)。
连接行为
- 支持 HTTP/1.1 和 HTTP/2,自动解码 gzip、deflate 和 brotli。
- TLS 证书按系统信任库校验。
- 自动跟随重定向。
- 请求之间不保留 Cookie。
- 连接超时为 30 秒,没有整体请求超时。
- 代理使用 设置 › 外观与行为 › 系统设置 › HTTP 代理 中的配置。
端点与 Spring
OpenIDEA 会为 Java 和 Kotlin 中的 Spring Web 端点(带@RequestMapping、@GetMapping 等注解的 @RestController / @Controller 类)建立索引:
- 每个映射方法和控制器旁边都有边栏图标。在 HTTP 客户端中生成请求 和 为控制器生成请求(也在编辑器右键菜单和意图操作中)会把请求追加到草稿文件
generated-requests.http并打开它。 - 生成的请求使用
http://localhost:<server.port>加上application.properties或application.yml中的上下文路径(端口默认 8080)。路径变量变成{{var}},并按@RequestBody类型填好 JSON 骨架。 - 随处搜索中有 端点 标签页。
- 在
.http文件中,方法后面的 URL 补全会提示已知端点。
暂不支持
- JavaScript 响应处理脚本(
> {% ... %}、> handler.js)和请求前脚本。处理脚本行能被识别,但会跳过。 - 用
>>/>>!保存响应,以及<>引用之前的响应(会跳过)。 - 在
.http文件中发送 WebSocket、gRPC 和 GraphQL 请求。GraphQL 在.graphql文件中有单独的支持。 - 按请求配置 SSL、客户端证书、关闭重定向和 Cookie 存储。
- 与 cURL 互相转换。