WebStorm内置REST Client通过创建.http或.rest文件编写请求,支持语法高亮、补全和运行;用空行分隔请求,格式为“方法 URL”,可配headers与body;变量用@name定义并置于顶部或独立###块,支持环境变量与简单表达式;JSON body需顶格、双引号、UTF-8无BOM;Content-Type须匹配实际格式;超时与响应大小需修改custom properties配置;复杂场景建议换用Postman或脚本。

WebStorm内置REST Client怎么写请求文件
直接新建一个 .http 或 .rest 后缀的文件,比如 api.test.http,WebStorm会自动识别并高亮语法、提供代码补全和运行按钮。
写法很轻量:用空行分隔不同请求,每段开头是 HTTP 方法 + 空格 + URL,后面跟可选的 headers 和 body:
GET https://jsonplaceholder.typicode.com/posts/1 Accept: application/json
注意:Content-Type 如果没显式写,WebStorm 默认按 body 内容自动推断(比如 JSON 自动加 application/json);但手动写更稳,尤其 POST 时容易漏。
- URL 支持环境变量,比如
{{base_url}}/users,需配合envs.json文件定义 - 请求体如果是 JSON,必须顶格写,不能缩进,否则解析失败
- 中文或特殊字符的 URL 要手动编码,WebStorm 不自动处理
怎么在REST Client里复用请求头和认证信息
靠 @name 定义变量 + ### 分隔块,就能跨请求共享 token、base_url 这类值。
常见错误是把变量写在请求块里(### 下面),那样只在当前块生效。正确做法是放在最顶部,或用独立的 ### 块声明:
@host = https://api.example.com
@token = Bearer abc123
GET {{host}}/me
Authorization: {{token}}
变量值支持简单表达式,比如 @now = {{moment().format('YYYY-MM-DD')}}(需启用插件支持),但别依赖太复杂的逻辑——REST Client 不是脚本引擎。
- 变量名不能含空格或横线,推荐用下划线,比如
@auth_token - Bearer token 如果带换行或多余空格,粘贴后要手动清理,否则 401
- Basic Auth 推荐写成
Authorization: Basic {{base64("user:pass")}},而不是手算 base64
发送 POST 请求时 body 总是 400 或 415 怎么办
绝大多数是 Content-Type 和实际 body 格式不匹配,或者 JSON 语法有隐藏错误(比如尾逗号、单引号、Unicode BOM)。
WebStorm 的 REST Client 对 JSON 校验比较严格,不像浏览器那么宽容:
POST https://api.example.com/login
Content-Type: application/json
{
"username": "test",
"password": "123"
}
- 确保 JSON 是纯 UTF-8 编码,无 BOM;右键文件 → File Encoding → 设为
UTF-8 - 不要用单引号代替双引号,JSON 标准只认双引号
- 表单提交用
Content-Type: application/x-www-form-urlencoded,body 写成key1=value1&key2=value2,不能换行或加空格 - 上传文件暂不支持(WebStorm 2023.3 仍无原生 multipart/form-data 构造器),得换工具
响应太大或超时怎么调参
默认超时是 30 秒,响应体限制约 10MB,超出就截断并报 Response body is too large 或 Read timed out。
这些参数不在 UI 里调,得改配置文件:Help → Edit Custom Properties...,添加:
restclient.request.timeout=60000 restclient.response.max.size=50000000
单位分别是毫秒和字节。改完重启 WebStorm 才生效。
- 增大响应限制后,大文件响应会卡 UI,建议只临时调,查完就改回去
- timeout 设太长会导致“假死”感,尤其网络不通时,建议设 15~30 秒足矣
- 如果经常要测流式接口(如 SSE),REST Client 本身不支持持续读取,得用 curl 或专用客户端
真正麻烦的是环境变量嵌套、动态 token 刷新、多步骤依赖请求——这些 REST Client 做不了,别硬撑,该切 Postman 或写脚本就切。

















