idea内的http客户端工具
2019-12-10 本文已影响0人
理查德成
intellj idea提供了强大的工具集合,其中自然包括HTTP客户端。虽然post man等第三方http客户端提供了强大的功能,但是intellj idea的优势在于免费与方便。
1)可视化形式
通过idea的http客户端创建http请求也很方便,如下,Tools->HTTP Client->Test RESTful Web Service:
image.png创建出一个可视化的http请求窗口:
image.png不过,这种可视化形式的窗口已经不被建议使用了,转而建议使用文件形式的。
2)文件形式
文件形式的http请求使用起来也很简单,在任意目录创建一个.http
后缀的文件即可。
idea也提供了非常人性化的教程,鼠标焦点移动到.http文件
内,右上角出现的两个图标,其中一个是http请求历史记录,另一个就是不同类型的http请求集合。随便打开一个就可以依葫芦画瓢自定义自己的http请求了:
请求百度首页:
image.pngGET http://www.baidu.com
Accept: application/json
###
点击左边的三角形即可执行。
当然还有更多复杂的post请求,参数,断言结果之类的丰富功能,参考提供的示例即可。
3)快捷键
idea提供了快捷键来简化以上的手输http请求,有以下一些:
-
gtr
:创建普通GET请求,通过tab键一步步自定义信息
GET http://localhost:80/api/item
Accept: application/json
###
-
gtrp
: 与gtr相比,多了一个参数位置
GET http://localhost:80/api/item?id=99
Accept: application/json
###
-
ptr
:创建普通POST请求, json格式请求参数
POST http://localhost:80/api/item
Content-Type: application/json
{}
###
-
ptrp
:同上,请求参数为kv格式
POST http://localhost:80/api/item
Content-Type: application/x-www-form-urlencoded
id=99&content=new-element
###
-
mptr
: 复杂类型POST请求
POST http://localhost:80/api/item
Content-Type: multipart/form-data; boundary=WebAppBoundary
--WebAppBoundary
Content-Disposition: form-data; name="field-name"
field-value
--WebAppBoundary--
###
-
fptr
:文件上传
POST http://localhost:80/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--
###
4)环境变量&引用
idea提供变量机制,变量以json格式,固定存储在以下两个文件中:
- http-client.env.json
- http-client.private.env.json
结构为:
{
"product": {
"var": "bar"
},
"test": {
"var": "foo"
}
}
外层是环境名称,内层是变量名称;这两个文件可以任意位置。在运行时,会提示使用哪个环境运行http请求:
使用时,通过{{}}
引用即可,示例:
http-client.env.json
{
"dev":{
"bar": "bar-val"
}
}
test.http
GET http://www.baidu.com/{{bar}}
Accept: application/json
###
运行时:
image.png可以看到可以使用定义的环境,来运行http请求:
image.png