使用 IDEA 自带的 HTTP Client 来测试 API


HTTP Client 介绍

对于 API 测试,常用的方式大多是通过浏览器发送请求、Postman 等 API 工具来测试 API

  • Chrome 等浏览器:不方便构造 POST 请求
  • Postman:比较专业,但是需要下载工具

之前对于 API 测试我一直使用等 Postman,便捷、可视化、批量测试,登录后还可以很方便的同步,也可以分享接口到组内或网上

但是最近才发现原来 IDEA 已经集成了 API 测试工具

网上查到的很多资料都是 VS Code 里的 Editor REST Client,跟 IDEA 的 HTTP Client 类似但还是有些区别的

IDEA 中貌似以前就已经有了 REST Client 工具,但是现在已经提示过时了,会提示使用 HTTP Client 来测试 API 了

REST Client

而新的 HTTP Client 界面是这样的:

rest-api.http

HTTP Client 用法

请求方式

普通 Get 请求

request
GET http://it.yusys.com.cn/yusys/PictureCheckCode.jpeg?nocache={{$timestamp}} Accept: application/json

POST Json 请求

request
POST http://localhost:80/api/item Content-Type: application/json {}

POST 表单请求

request
POST http://localhost:80/api/item Content-Type: application/x-www-form-urlencoded id=99&content=new-element

POST 文本请求

request
POST http://localhost:80/api/item Content-Type: multipart/form-data; boundary=WebAppBoundary --WebAppBoundary Content-Disposition: form-data; name="field-name" field-value --WebAppBoundary--

POST 文件请求

request
POST {{url}}/api/item Content-Type: multipart/form-data; boundary=WebAppBoundary --WebAppBoundary Content-Disposition: form-data; name="field-name"; filename="file.txt" < ./relative/path/to/local_file.txt --WebAppBoundary--

其他请求

还有其他类型的请求都支持,这里不做详细介绍了

  • PUT
  • DELETE

自定义配置

有时候同一个 api 有多个环境,尤其开发过程中,有本地、测试、生产的环境,每个环境的地址不一样

这时候就可以在创建一个配置文件 http-client.env.json 放在与 http 文件相同路径,设置如下:

{
    "development": {
        "url": "http://localhost:8080"
    },
    "production": {
        "url": "http://123.234.6.191"
    }
}

这样就可以在请求中使用 {{url}} 来发送不同环境的请求啦

发送请求时会让你选择 development 还是 production

是不是非常方便?

动态参数

HTTP Client 自带几个动态参数,每次运行请求时,动态参数都会生成一个新值:

  • $uuid: 生成通用唯一标识符(UUID-v4)
  • $timestamp: 生成当前的 UNIX 时间戳
  • $randomInt: 生成 0 到 1000 之间的随机整数

示例见第一个 GET 请求

请求后执行 JS 脚本

待续…


文章作者: CrazyBunQnQ
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 CrazyBunQnQ !
 上一篇
树莓派 4B 搭建 NAS 树莓派 4B 搭建 NAS
树莓派刚出了新版 4B,感觉配置不错,就入手了一个玩玩~然而买回来之后一直在吃灰...赶紧拿出来耍耍~
2020-02-29
下一篇 
JDK 7 新特性 JDK 7 新特性
面试的时候面试官问我用的哪个 JDK 版本,然后问我有啥新特性,支支吾吾就答了几个…回来赶紧看看都有啥新特性,查完发现我平时还用了不少呢,有些居然不知道是新特性…好尴尬赶紧复习下…
2019-01-27
  目录