为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java

前言

只有光头才能变强。

相信大家都用过POSTMAN吧,后端在开发的时候写完接口总得去自测调用一下,看符不符合自己的预期。

https://img1.sycdn.imooc.com//5dff3859000125e510800637.jpgpostman

因为我们的接口可能会有很多参数或者我们的参数是json格式的(等等原因),直接用浏览器去请求不太方便,而且使用浏览器去请求也不能复用(没有保存的功能)。

所以我们常常会用一些别的软件(插件),而POSTMAN就是这里边最出名的。

这篇文章不是在介绍POSTMAN,而是我们Java程序员最喜欢的IDEA,它也能做到POSTMAN的功能,而且我觉得更加好用。

小插曲

在前几天换了MacBookPro,自然就需要把在Windows上的hosts配置的东西搬移到MacBookPro上

https://img1.sycdn.imooc.com//5dff38590001cf6510800341.jpg从Windows复制对应的hosts配置

于是我就很欢快愉悦地就将这些配置复制到gas mark。复制完了以后,我去访问自己的预发环境也是成功了(我这边一般预发环境都要配置hosts才能访问)。

但是等我用POSTMAN和IDEA自带的HTTP Clint去测试我自己接口的时候,一直都404了,我非常不明白为什么404

  • 明明我自己的机器从浏览器直接访问预发环境是没问题的啊

  • 我将相同的URL放在Windows上是可以访问的,放在Mac上就访问不了

  • 好奇怪啊….

于是我就喊来了我的小伙伴帮我看看什么情况(我没遇到过这种问题),小伙伴也给我分析起来了(搞着搞着就一群小伙伴都围着我看这问题了)

  1. 检查一下我的gas mark配置有没有问题----没看出有问题

  2. 检查一下我的绑定有没有相同的域名----没看出有问题

  3. 检查一下本机的hosts文件有没有问题(注:我这里是在图文上看的。快捷键:option+command+空格,然后command+shift+g,输入/etc/hosts查看文件----没看出有问题

  4. ping一下域名----发现能ping通,但不是我绑定的ip

  5. 怀疑DNS污染,去搜了几条命令刷新DNS----无果

  6. 此时有个声音:“是不是你的hosts文件有特殊的字符啊?“,我熟练地在iTerm2输入sudo vim /etc/hosts,一看,好多的特殊字符。----问题解决,复制的时候存在特殊字符。哎哟。

简单介绍HTTP Client

上面也讲到了,IDEA已经自带了类似POSTMAN的工具给我们使用了,如果它足够好用,我就不用去下载POSTMAN了。

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

https://img1.sycdn.imooc.com//5dff385a0001fbcf10800383.jpg入口

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

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

https://img1.sycdn.imooc.com//5dff385a00015b5710800377.jpgREST Client 界面

从界面上的小字,我们可以看出:IDEA是不推荐我们使用REST Client了,不妨让我们去使用new HTTP Client。从REST Client的风格我们可以看出跟POSTMAN没什么大的区别(从功能上长得差不多)

点击蓝字,我们跳到IDEA推荐用的new HTTP Client,可以发现这个界面:

https://img1.sycdn.imooc.com//5dff385b00018ff610800197.jpg一个新的界面

我对这种用写的方式还是挺喜欢的(个人)。我们尝试一下右边的几个链接就可以快速入门

首先是Add Request,从英文上我们已经可以得出这是增加一个常见的请求模板(供你选择)

https://img1.sycdn.imooc.com//5dff385b0001ebe707180520.jpgAdd Request

我们随便点一个试试,看一下是怎么样的:

https://img1.sycdn.imooc.com//5dff385b0001a75610800539.jpg尝试功能

然后我们可以点击Examples链接,看一下它的功能:

https://img1.sycdn.imooc.com//5dff385c0001dacd10400586.jpgExamples链接

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

https://img1.sycdn.imooc.com//5dff385c0001628c10800945.jpg各种示例

更好用的是,我们可以定义变量(不同的环境使用不同的变量),我们可以定义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

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

https://img1.sycdn.imooc.com//5dff387c00015f3f10800395.jpg样式图



点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
1.5万
获赞与收藏
6488

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消