你会换掉Postman吗?我正在用HTTP Client...

前言

相信大家都使用过

POSTMAN
吧,在后端开发过程中,接口编写完成后总需要自测调用一下,看是否符合预期。

postman

由于接口可能包含许多参数或使用

json
格式,直接用浏览器请求不太方便,且无法保存和复用请求。

因此,我们通常会使用一些其他软件或插件,而

POSTMAN
是其中最著名的。

本文并不是介绍

POSTMAN
,而是讨论我们Java程序员最喜爱的IDEA,它也能实现
POSTMAN
的功能,而且我觉得更加实用。

小插曲:最近我换了MacBookPro,需要将Windows上的hosts配置移植到MacBookPro上。

于是,我通过QQ将Windows上的hosts复制到gas mark(一个我在Mac上管理hosts的软件,我觉得很好用)。

从Windows复制对应的hosts配置

我愉快地将这些配置复制到gas mark后,成功访问了自己的预发环境(我通常需要配置hosts才能访问预发环境)。

但当我用

POSTMAN
和IDEA自带的
HTTP Client
测试自己的接口时,却一直收到
404
错误,我非常不明白为什么会这样。

明明我的机器从浏览器直接访问预发环境是没问题的啊。我将相同的URL放在Windows上可以访问,但在Mac上就访问不了,真是奇怪啊…于是我叫来了我的小伙伴帮忙看看情况(我之前没遇到过这种问题),小伙伴们也开始分析起来(最后一群小伙伴都围着我看这个问题)。

检查我的gas mark配置是否有问题

----
没看出问题检查我的绑定是否有相同的域名
----
没看出问题检查本机的hosts文件是否有问题(注:我是在图文上查看的。快捷键:
option+command+空格
,然后
command+shift+g
,输入
/etc/hosts
查看文件
----
没看出问题
ping
一下域名
----
发现能ping通,但不是我绑定的IP怀疑DNS污染,去搜了几条命令刷新DNS
----
无果这时有人提醒:“是不是你的hosts文件中有特殊字符啊?”,我熟练地在
iTerm2
中输入
sudo vim /etc/hosts
,一看,确实有许多特殊字符。
----
问题解决,复制时存在特殊字符。哎哟。简单介绍HTTP Client上面也提到了,IDEA已经自带了类似
POSTMAN
的工具供我们使用,如果它足够好用,我就无需下载
POSTMAN
了。

首先,我们找到它的入口:

入口

Tools->HTTP Client->Test RESTful Web Service
,不会很难找到。

点开后,我们可以在底部发现

REST Client

REST Client 界面

从界面上的小字我们可以看出:

IDEA
不推荐我们使用
REST Client
,建议我们使用
new HTTP Client
。从
REST Client
的风格来看,与
POSTMAN
没有太大区别(功能上相似)。

点击蓝字,我们跳转到

IDEA
推荐的
new HTTP Client
,可以看到这个界面:

一个新的界面

我个人很喜欢这种通过编写的方式(个人偏好)。我们尝试一下右边的几个链接就可以快速入门。

首先是

Add Request
,从英文我们可以看出这是增加一个常见的请求模板(供你选择)。

Add Request

我们随便点一个试试,看看效果:

尝试功能

然后我们可以点击

Examples
链接,看看它的功能:

Examples链接

我们可以看到各种示例,非常方便我们入门:

各种示例

更实用的是,我们可以定义变量(不同环境使用不同的变量),我们可以定义

http-client.env.json
,其中写入一些通用变量的值。然后在
.http
文件中就可以引用:

//http-client.env.json 样式
{
  "dev": {
    "baseUrl": "http://gateway.xxx.cn/",
    "username": "",
    "password": ""
  },
  "pre": {
    "baseUrl": "http://localhsot:8888/",
    "username": "",
    "password": ""
  }
}

.http
文件中使用{{condition}}就可以引用到我们公用的环境变量了:

GET {{baseUrl}}/api/item?id=99
Accept: application/json

在执行时我们可以选择不同的环境执行:

样式图

最后我们可以发现,IDEA通过文件的方式就能构建自己的接口,这意味着我们可以将文件上传到

Git
上,方便多人协作。

通过配置可以帮助我们快速切换对应的环境(变量),只需编写一次请求体,就可以用于多个环境。

通过官方提供的Examples我们也可以快速了解如何使用,没有什么学习成本。

还有一些高级功能…我就不说了(因为我也不懂),大家有兴趣可以去看一下。

参考资料:

https://www./link/db92254e80a05b411642bc6885748637https://www./link/4cfbfb28ee66aceab7be17065ebdb6e5

当我写下这篇文章时,敖丙和鸡蛋都说:“POSTMAN才是世界上最好用的工具,三歪没有格局。等他发文章的时候我要举报他。”

如果你,你会换掉POSTMAN吗?不妨在评论区留言。