# HTTP Request
HTTP Request 是 IDEA 内置的一款 HTTP 模拟请求工具。
只需要按照简单的规则编写纯文本配置即可模拟 HTTP 请求。相对于需要频繁借助鼠标填写参数的 Postman (opens new window) 等工具,我个人更喜欢 IDEA 的做法。
HTTP Request 的主要功能如下:
- 支持模拟所有类型的 HTTP 请求,包括 GET、POST、PATCH、DELETE、PUT、HEAD、OPTIONS 等;
- 支持动态参数;
- 支持断言,可以编写和执行测试用例;
- 支持模拟文件上传;
- 记录请求日志;
# 模拟请求
HTTP Request 工具的使用非常简单,只需要在 IDEA 内任何位置新建 .http
文件,然后在 .http
文件中填写相应规则即可。
这里有一个请求示例:
### Send POST request with json body
POST https://httpbin.org/post
Content-Type: application/json
{
"id": 999,
"value": "content"
}
### GET request with a header
GET https://httpbin.org/ip
Accept: application/json
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
其中:
- 第 1 行开头的
###
代表开始一个新的 HTTP 请求,后面可以跟注释内容(#
代表单行注释); - 第 2 行中的
POST
指定了请求方法,这里支持 HTTP 的所有请求方法; 后面的https://httpbin.org/post
表示请求 uri; - 第 3 行表示请求头。请求方法后面紧邻的所有行都会被当做请求头处理;
- 第 5-8 行是请求体,会被放置到 RequestBody 中;请求体和请求头之间需要有一个空行分割;
后面的 Get 请求同理。
如果你还是不清楚如何编写 HTTP 请求,可以点击编辑器右上角的 “Examples” 来查看 IDEA 官方示例:
编写完请求规则之后,只需要点击执行按钮,即可在控制台看到请求结果。
# curl 转换
curl 转换是我非常喜欢的一个功能,简直就是 debug 神器。
与前端同事联调接口时,如果前端发现请求报错,我会让前端同事直接从浏览器开发者工具中把对应请求的 curl 命令复制给我。
我在 IDEA 的 HTTP Request 中再把 curl 命令转换为 HTTP 请求,这样可以 完全还原 bug 现场,对 bug 的排查工作有着莫大的帮助。
复制浏览器请求的 curl 命令:
把 curl 指命令转换为 HTTP Request:
- 点击
.http
文件编辑器右上角的 “Convert...” 按钮; - 选择 “Convert Curl to HTTP Request”;
- IDEA 会弹出一个文本框并自动粘贴剪贴板中的 curl 命令,我们也可以自行粘贴 curl 命令;
- 确认 curl 命令无误之后,点击 “Convert” 即可生成 HTTP Request 请求;