最简可运行 .http 文件需满足:首行大写方法+空格+完整URL(如 GET https://httpbin.org/get),文件存项目内、后缀为.http或.rest,光标停该行按Ctrl+Enter发送。

PhpStorm 内置 HTTP Client 不是“插件”,它不开箱即用,必须写对 .http 或 .rest 文件格式才能发请求——错一个空行、少一个大写字母、变量名带点号,就根本不会运行。
怎么写一个能立刻运行的 .http 文件
不是新建文件随便敲几行就能跑。它只认两种后缀、一种首行结构、一个存放位置:
- 文件必须保存为
.http或.rest(不能是.txt或强行改后缀) - 必须放在 PhpStorm 当前打开的项目目录内(桌面、
/tmp、家目录都不行) - 首行必须是顶格的
GET https://httpbin.org/get这种格式:方法全大写 + 一个空格 + 完整 URL(不能有注释、不能有中文、不能有尾随空格) - 光标停在这一行,按
Ctrl+Enter(macOS 是Cmd+Enter),绿色甲虫图标亮起才表示识别成功
变量定义总报 Cannot resolve variable 怎么办
这不是语法错误,是作用域和命名规则被违反了:
- 变量名只能含字母、数字、下划线:
@api_host✅,@api.host❌,@auth-token❌ - 必须先定义、后引用:把
@host = http://localhost:8000写在文件最顶部,再写GET {{host}}/users - 如果用
### @env dev分块,那变量只在该块及之后生效;写在块下面的请求,用不到上面定义的变量 -
http-client.env.json必须放在项目根目录,内容扁平:{"dev": {"base_url": "http://localhost:8000"}},引用时写{{base_url}},不能写{{base.url}}
POST JSON 请求老是 400,检查这三点
HTTP Client 不校验 JSON 合法性,只按字面解析格式。它卡住,90% 是结构问题:
立即学习“PHP免费学习笔记(深入)”;
- 请求行后必须紧接一个空行(不能缩进、不能多空行)
- Header 行必须顶格,
Content-Type: application/json不能有前导空格,也不能小写 - Body 必须顶格、无缩进、无 BOM、双引号齐全:
{"name":"Alice"}✅,{name:"Alice"}❌
调试 PHP 接口断点不命中,XDEBUG_SESSION_START 够吗
够,但只是起点。光加这个 header,不代表 Xdebug 真连上了:
- 确认 CLI 和 Web SAPI 都加载了 Xdebug:运行
php -v和访问phpinfo()页面,都得看到 Xdebug 字样 -
xdebug.client_host必须设成宿主机 IP(Docker 下别写localhost) - URL 要能被当前 Web 服务响应(建议用
php -S localhost:8000起个简易服务,绕开 Nginx/Apache 配置干扰) - 断点打在实际被执行的文件里——Laravel/Slim 等框架下,入口是
index.php,不是你写的控制器文件
最容易被忽略的是:变量值为空时,PhpStorm 不报错也不发请求,只显示 Variable 'xxx' is not defined;而中文参数没手动 URL 编码(如 ?q=张三 应写成 ?q=%E5%BC%A0%E4%B8%89),服务端往往静默丢弃或返回 400。


















