phpstorm http client 可直接写 .http 文件发请求,需注意 get 独占一行、url 无空格、变量扁平化、post 需空行分隔、断言用 {%...%}、响应需手动保存;二进制内容不支持预览。

PhpStorm 内置的 HTTP Client 不需要装插件、不依赖外部工具,直接写 .http 文件就能发请求——但默认不自动保存响应、不支持环境变量嵌套、GET 参数拼错 URL 就 404,这些地方最容易卡住。
怎么新建并运行一个最简 HTTP 请求
在项目任意目录右键 → New → HTTP Request,生成一个 untitled.http 文件。删掉模板内容,写一行:
GET https://httpbin.org/get
光标停在这行,按 Ctrl+Enter(macOS 是 Cmd+Enter)即可发送。响应会出现在下方 Services 工具窗口的 HTTP Client 标签页里。
注意:GET 请求必须独占一行;URL 后不能跟空格或注释;如果返回 400 Bad Request,先检查 URL 末尾有没有多出不可见字符(比如全角空格)。
如何用变量管理不同环境的 API 地址
在项目根目录建 http-client.env.json,内容如下:
{
"local": {
"host": "http://localhost:8000"
},
"prod": {
"host": "https://api.example.com"
}
}
然后在 .http 文件顶部声明环境:
### @name Get user
### @env local
<p>GET {{host}}/api/users/123</p>
关键点:{{host}} 变量名必须和 JSON 里字段名完全一致;@env 后面的值(如 local)必须和 JSON 中的对象 key 对应;切换环境时,点击右上角环境选择器,不是改文件名。
常见坑:http-client.env.json 放错位置(必须在项目根目录或通过 Settings → Tools → HTTP Client → Environment files 指定路径);变量嵌套不支持,比如 {{base.url}} 会报错,只能扁平结构。
POST 请求怎么传 JSON 并校验响应状态
写法要分三段:请求行、Headers、Body:
### Create post
POST {{host}}/api/posts
Content-Type: application/json
<p>{
"title": "Hello",
"body": "World"
}</p>
注意:Content-Type 必须单独成行且紧贴请求行后;Body 前必须有一空行;JSON 中字段名写错、缺引号、逗号多写都会导致 400 或 500;响应状态码不匹配时,可在 Body 下加断言:
### Create post
POST {{host}}/api/posts
Content-Type: application/json
<p>{
"title": "Hello"
}</p><blockquote><p>{%
client.assert(response.status === 201, "Expected 201");
client.assert(response.body.title === "Hello", "Title mismatch");
%}</p></blockquote>
断言语句必须以 > {% 开头,结尾是 %};response.body 是解析后的 JSON 对象,不是原始字符串;断言失败不会中断执行,只在响应窗口标红提示。
响应太大或要重复调试时怎么保存和复用
默认响应不自动保存。想保留某次结果,点击响应窗口右上角 Save Response 图标(向下箭头),选路径存为 .json 或 .txt。下次调试可直接拖进编辑器,或用 ### @include 引入:
### Mock response from file
GET https://example.com/api/data
<blockquote><p>{%
// 读取本地文件模拟响应(仅用于测试)
const mock = JSON.parse(client.file("mock-data.json"));
client.response.body = mock;
%}</p></blockquote>
更实用的是用 Save Response 存下成功响应后,右键该文件 → Convert to Test,自动生成带断言的测试块;但如果接口返回时间戳、UUID 这类动态字段,断言会频繁失败,得用正则或忽略字段处理。
真正麻烦的是二进制响应(如图片、PDF)——HTTP Client 只显示 base64 编码,无法预览,也没法直接保存为原格式文件。这时候不如复制 URL 到浏览器打开,或者换用 curl 命令补位。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











