IDEA 版 Postman HTTP Client 测试 API 接口
IDEA HTTP Client About 2,910 words说明
IDEA专业版中的工具HTTP Client,用于测试API接口。部分可替代PostMan。
.HTTP和.rest结尾的文件,会被IDEA识别为可被HTTP Client功能调用的文件。
快捷键
前提:需自己新建文件,而不是在Scratches and Consoles或者.idea/httpRequests文件夹下。
gtr:GET请求,不带QueryString请求参数。gtrp:GET请求,携带QueryString请求参数。ptr:POST请求,携带JSON数据,Content-Type: application/json。ptrp:POST请求,携带表单数据,Content-Type: application/x-www-form-urlencoded。mptr:POST请求,文件上传。
多环境配置
全局配置
文件名:HTTP-client.env.json
适用于全局,一般会进行版本控制,团队公共。
示例:development和production环境(命名随意)。
{
"development": {
"host": "localhost:8080",
"id-value": 12345,
"username": "",
"password": "",
"my-var": "my-dev-value"
},
"production": {
"host": "example.com",
"id-value": 6789,
"username": "",
"password": "",
"my-var": "my-prod-value"
}
}
本地配置
文件名:HTTP-client.private.env.json
适用于本地,用于覆盖全局配置,一般不上传远程仓库。
示例:本地覆盖username和password。
{
"development": {
"username": "dev",
"password": "dev"
},
"production": {
"username": "user",
"password": "password"
}
}
返回值处理脚本
使用返回值处理脚本,可以提取返回值中的值,以便复用,用于后续请求。
client是HTTP Client的一个JavaScript对象,包含了:client.log打印日志、client.global存储全局变量。
response是HTTP Client中表示接口的返回信息,存储了返回值,HTTP的状态码、Headers头信息、Content-Type。
代码示例。
> {%
if (response.status === 200){
if(response.body.code === 0) {
client.global.set("token", response.body.data);
client.log(JSON.stringify(response.body.data))
}
}
client.log(JSON.stringify(response))
%}
还可以引入外部js文件
> script/my-script.js
存储全局变量。
client.global.set("abc", "this is value");
获取全局变量,直接使用{{}}获取。
{{abc}}
response中的信息,其中body字段下的code、msg等是自定义的接口返回值,其余为response的固定值。
{
"body": {
"code": 0,
"msg": null,
"data": "6567bf15-58f5-41e2-b024-adcd223f589c"
},
"status": 200,
"headers": {},
"contentType": {
"mimeType": "application/json",
"charset": ""
}
}
内置变量
$uuid
生成通用的UUID(v4)。
{{$uuid}}
$timestamp
生成UNIX时间戳。
{{$timestamp}}
$randomInt
生成介于0~`1000`之间的随机数。
{{$randomInt}}
管理 Cookies
Cookies存储在.idea/httpRequests/目录下的HTTP-client.cookies文件中。
最多存储300个Cookies。
@注释
@name
给API接口取名,否则IDEA默认以#1开始编排。
# @name apiName
@no-log
返回结果不记录在.idea/httpRequests/文件夹下,适用于一些不适合保存的敏感数据。
# @no-log
@no-cookie-jar
请求时不携带Cookies。
# @no-cookie-jar
@no-redirect
服务端返回301等重定向状态码时,不请求重定向后的地址,直接返回301的结果。
# @no-redirect
@use-os-credentials
# @use-os-credentials
转换成 cURL
方法一
将光标点击到需要转换的HTTP请求上,点击顶部Convert to cURL and Copy,即可将HTTP Client中声明的请求复制成cURL并且拷贝到粘贴板中。
方法二
将光标点击到需要转换的HTTP请求上,按下Alt+Enter快捷键,选择Convert to cURL and copy to clipboard,即可将HTTP Client中声明的请求复制成cURL并且拷贝到粘贴板中。
更多用法
HTTP Client还支持:GraphQL、WebSocket。
===:分割WebSocket的每条信息。
=== wait-for-server:等待WebSocket服务端返回信息。
参考
https://www.jetbrains.com/help/idea/exploring-http-syntax.html
https://www.jetbrains.com/help/idea/HTTP-client-in-product-code-editor.html
视频讲解
https://www.bilibili.com/video/BV1Xa411978P
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓