http client 文件需用 .http 或 .rest 后缀,通过右键 new → http request 创建;支持多请求分隔、环境变量定义及 oauth2 配置,但不兼容 postman 脚本与 headers 数组格式。

HTTP Client 文件怎么建才不踩坑
WebStorm 的 HTTP Client 不是靠“运行”按钮启动的,而是靠文件后缀识别——必须用 .http 或 .rest 后缀,否则没有语法高亮、补全和绿色执行箭头。
- 别新建普通文本文件再改后缀:WebStorm 可能没注册文件类型,得右键 → New → HTTP Request 才能确保关联正确
- 临时测试用 Scratch File(Ctrl+Alt+Shift+Insert)更安全:它不进 Git、可被 IDE 自动写入响应时间/状态码等元信息
- 一个
.http文件里可以写多个请求,用空行或###分隔;但别把不同环境的变量混在同一个块里,容易误覆盖
Postman 集合导进来为什么 headers 全丢了
WebStorm 不支持直接导入 Postman 的 JSON 集合文件,所谓“导入”其实是手动粘贴 + 语法转换,而 Postman v2.1 JSON 里的 headers 是数组结构,HTTP Client 只认键值对格式,一粘贴就静默失效。
- 导出 Postman 集合时选
Collection v2.1 (recommended),但粘贴前先用jq或在线 JSON 格式化工具展开item[*].request.headers,人工转成类似Content-Type: application/json的行格式 - Postman 的
pre-request script和test script完全不兼容 HTTP Client,得重写为###后的 JavaScript 响应处理器(用pm.*改成client.*或原生 JS) - 环境变量(如
{{base_url}})不能直接沿用:WebStorm 要求定义在文件顶部的@host = https://api.example.com或公共环境文件里,且引用时写{{host}},不是双大括号套双大括号
OAuth 2.0 怎么配才能自动拿 token
HTTP Client 的 OAuth 支持只走配置驱动,不是填个 client_id 就能跑通——它依赖一个独立的 JSON 环境配置文件(http-client.env.json),且必须放在项目根目录或通过设置指定路径。
- 别在
.http文件里硬编码 token:先在http-client.env.json里写好{"dev": {"Security": {"Auth": {"my-api": {"Type": "OAuth2", "Grant Type": "Authorization Code", "Client ID": "xxx"}}}}} - 请求里用
Authorization: Bearer {{$auth.token("my-api")}},不是$auth.token或{{token}};少一对$或括号都会报Unresolved variable - 首次运行会弹非模态浏览器窗口,此时你仍可在 WebStorm 里切窗口、复制密码——但别关掉这个窗口,否则 token 获取中断,后续请求全 401
CLI 跑 .http 文件为啥没返回 body
ijhttp CLI 默认只打印请求行和状态码,body 和 headers 是隐藏的,不像 GUI 里点一下就展开,很容易误判接口没响应。
- 加
-L VERBOSE才能看到完整请求/响应体:ijhttp api.http -L VERBOSE - 想存响应到文件?在
.http文件里对应请求末尾加>> response.json(覆盖)或>>! response.json(追加),注意>>前后不能有空格 - CLI 不支持 SSL 证书自定义和 OAuth 流程,遇到
PKIX path building failed或auth config not found直接切回 IDE GUI 调试,别硬扛
最常被忽略的是环境变量的作用域:文件顶部定义的 @var = value 只在当前文件生效,而 http-client.env.json 里的 dev / prod 是全局切换的——但两者不能混用同一变量名,否则 CLI 运行时读不到 GUI 里设的值。











