Java OpenResty Spring Spring Boot MySQL Redis MongoDB PostgreSQL Linux Android Nginx 面试 小程序 Arthas JVM AQS juc Kubernetes Docker DevOps


IDEA 版 Postman HTTP Client 测试 API 接口

IDEA 大约 2910 字

说明

IDEA专业版中的工具HTTP Client,用于测试API接口。部分可替代PostMan

.HTTP.rest结尾的文件,会被IDEA识别为可被HTTP Client功能调用的文件。

快捷键

前提:需自己新建文件,而不是在Scratches and Consoles或者.idea/httpRequests文件夹下。

  • gtrGET请求,不带QueryString请求参数。
  • gtrpGET请求,携带QueryString请求参数。
  • ptrPOST请求,携带JSON数据,Content-Type: application/json
  • ptrpPOST请求,携带表单数据,Content-Type: application/x-www-form-urlencoded
  • mptrPOST请求,文件上传。

多环境配置

全局配置

文件名:HTTP-client.env.json

适用于全局,一般会进行版本控制,团队公共。

示例:developmentproduction环境(命名随意)。

{
  "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

适用于本地,用于覆盖全局配置,一般不上传远程仓库。

示例:本地覆盖usernamepassword

{
  "development": {
    "username": "dev",
    "password": "dev"
  },

  "production": {
    "username": "user",
    "password": "password"
  }
}

返回值处理脚本

使用返回值处理脚本,可以提取返回值中的值,以便复用,用于后续请求。

clientHTTP Client的一个JavaScript对象,包含了:client.log打印日志、client.global存储全局变量。

responseHTTP 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字段下的codemsg等是自定义的接口返回值,其余为response的固定值。

{
    "body": {
        "code": 0,
        "msg": null,
        "data": "6567bf15-58f5-41e2-b024-adcd223f589c"
    },
    "status": 200,
    "headers": {},
    "contentType": {
        "mimeType": "application/json",
        "charset": ""
    }
}

内置变量

$uuid

生成通用的UUIDv4)。

{{$uuid}}

$timestamp

生成UNIX时间戳。

{{$timestamp}}

$randomInt

生成介于0~`1000`之间的随机数。

{{$randomInt}}

管理 Cookies

Cookies存储在.idea/httpRequests/目录下的HTTP-client.cookies文件中。

最多存储300Cookies

@注释

@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还支持:GraphQLWebSocket

===:分割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

https://www.bilibili.com/video/BV1BT411w7xC

https://www.ixigua.com/i7136926452947255843

阅读 213 · 发布于 2022-08-29

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批